Saturday, November 29, 2008

Oracle VM virtual RAC

Jakub Wartak, released a guide on how to set up a RAC enviroment for Oracle using Oracle VM and Oracle Enterprise Linux. You can find the paper here at the Oracle site and it is a must read!

"A typical Oracle Real Application Clusters (RAC) deployment is an architecture that provides fast recovery from a single or multiple-node failures. But in a typical scenario, all nodes of Oracle RAC are located in a single data center and thus prone to catastrophic data center failure. The solution for achieving disaster recovery in this scenario is to set up Oracle DataGuard between the local data center and some backup data center where standby systems are running (typically a single Oracle database or another RAC cluster).

Although DataGuard plays this role very well, it turns the whole standby system(s) and array(s) into passive nodes—wherein computing power can't be used for transactions—and thus heavily increases the price of the solution. (Although standby Oracle DataGuard systems can be opened for read-only queries, and can even run in read-only mode all the time with Active DataGuard in Oracle Database 11g, in this configuration it requires applications to be aware of the read-only nature of some nodes.)

Fortunately there is another solution for achieving (partial) disaster recovery, called Extended RAC or Stretched RAC. In this architecture some of the RAC nodes work at “site Alpha”, and the rest of the nodes work at “site Beta”. Nodes at both sites are active, so all computing resources are fully utilized. As shown in Figure 1, each site has its own Storage Area Network (SAN); systems present at both data centers (dcA and dcB) are members of the same, single RAC cluster and thus must be able to exchange data over the interconnect very quickly as well as access the other site's storage. (That is, node RAC1 at dcA writes to SAN array at dcB and also communicates with RAC2 node at dcB)."

find subdomains of a domain

You might find yourself in a situation that you would like to know all the listed sub-domains in a domain. If you are the administrator of the DNS server you will not have much trouble of finding the information, if you are not the administrator of the server you can have a hard time finding out the sub-domains for a domain.

There is a 'trick' you can use to make the domain server tell you what the sub-domains for a domain are. This 'trick' is however not always working. If the domain server you are talking to allows DNS zone transfer and it is allowing this information to be send to all IP addresses that request is you are in luck. A DNS zone transfer is used to update slave DNS servers from the master DNS server.

When you operate several DNS servers you do not want to update them all when you are making a change. In a ideal situation you update the master server and the slave servers do a request to the master server every X time to be updates in. In some cases the administrator of the DNS servers has not set a limitation to who can request those updates. This will mean that you also can request a update.

A quick example, we take the domain which is the Dutch meteorology institute. First we would like to know the authoritive nameserver of the domain so we do a 'dig' at a linux shell:

jlouwers$ dig

; <<>> DiG 9.4.2-P2 <<>>
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24089 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ; IN A ;; AUTHORITY SECTION: 4521 IN SOA 2008112601 14400 1800 3600000 86400 ;; Query time: 18 msec ;; SERVER: ;; WHEN: Sat Nov 29 12:32:55 2008 ;; MSG SIZE rcvd: 78 jlouwers$ jlouwers$ jlouwers$

"dig (domain information groper) is a flexible tool for interrogating DNS name servers. It performs DNS lookups and displays the answers that are returned from the name server(s) that were queried. Most DNS administrators use dig to troubleshoot DNS problems because of its flexibility, ease of use and clarity of output. Other lookup tools tend to have less functionality than dig."

So now we know the authoritive nameserver of the domain, you can find it under ";; AUTHORITY SECTION:", so we will be asking the for all the subdomains listed for this domain. This can be done with the a command like 'dig axfr'. With this command we ask for all records for with a axfr command, axfr is the zone transfer command.

jlouwers$ dig axfr

; <<>> DiG 9.4.2-P2 <<>> axfr
; (1 server found)
;; global options: printcmd 86400 IN SOA 2008112601 14400 1800 3600000 86400 86400 IN MX 5 86400 IN MX 10 86400 IN NS 86400 IN NS 86400 IN NS
* 86400 IN MX 5
* 86400 IN MX 10 86400 IN CNAME 86400 IN A 86400 IN CNAME 86400 IN A 86400 IN CNAME 86400 IN A 86400 IN CNAME 86400 IN A 300 IN A 86400 IN A 300 IN A 300 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 300 IN A 86400 IN CNAME 86400 IN CNAME 300 IN A 86400 IN CNAME 86400 IN CNAME 86400 IN A 86400 IN CNAME 86400 IN A 86400 IN CNAME 86400 IN A 300 IN A 86400 IN A 300 IN A 86400 IN CNAME 86400 IN CNAME 86400 IN A 86400 IN CNAME 86400 IN CNAME 86400 IN CNAME 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN CNAME 86400 IN CNAME 300 IN A 300 IN A 86400 IN A 86400 IN A 300 IN A 86400 IN A 86400 IN A 86400 IN A 300 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN CNAME 86400 IN CNAME 86400 IN CNAME 86400 IN CNAME 86400 IN CNAME 300 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN A 86400 IN CNAME 86400 IN CNAME 86400 IN A 86400 IN CNAME 86400 IN CNAME 86400 IN A 86400 IN A 300 IN A 86400 IN A 86400 IN SOA 2008112601 14400 1800 3600000 86400
;; Query time: 19 msec
;; WHEN: Sat Nov 29 12:39:04 2008
;; XFR size: 95 records (messages 1, bytes 2169)


This is how you can get a complete list of all subdomains listed at a domain server. However, this will only work in cases that a domain server is allowing you to request a zone transfer.

Friday, November 28, 2008

NDMP backup stalls

We are currently using a netvault backup system in combination with a Netapp filer. To be able for netvault to communicate with the tape library and the tape drives to make the backup ndmpd is used as a deamon. However in some cases those sessions will be hanging. Only in extreme cases. This is what I found in a help document, it can come in handy if you have a problem:

NDMP backup says "Writing to Media" even though it is not writing to media.
Affected NV Version: 7.4.x
OS Version: All
Plugin version: 6.3.x
Application version: N/A

Several jobs continually say "Writing to Media" even though they are not writing to media. If you look at the logs, it shows a "Channel Error" near the bottom of the log. In "Device Manager" the drive used for these backups says: DRIVE 1 (Locked by Session(Hard).


Most likely the ndmp sessions on the filer have entered a hung state. Issue the following commands at the console prompt of the filer;

ndmpd killall
ndmpd off
ndmpd on
ndmpd status (shows if all strays processes have been eliminated)

This should resolve issue.

Thursday, November 27, 2008

Amazon EC2 and Python

Some time ago I posted a post about the Amazone Elastic Compute Cloud (EC2) and that Amazone and Oracle where teaming up to provide more services to the users of the EC2.

"Oracle announced that it will certify/support deployments of Oracle Database (all editions), Oracle Enterprise Linux, Oracle Enterprise Manager, and Oracle Fusion Middleware to Amazon Web Services' (AWS) Elastic Compute Cloud (EC2). In fact you may transfer your existing licenses to AWS if you like."

Today I found more information about the EC2 and the way you can program Python code for it. Pete Skomoroch gave a talk on PyCon 2008 in Chicago. His talk can be found on youtube (also see the embedded video below) and you can download his presentation slides from the PyCon website here.

"Amazon EC2 may offer the possibility of high performance computing to programmers on a budget. Instead of building and maintaining a permanent Beowulf cluster, we can launch a cluster on-demand using Python and EC2. This talk will cover the basics involved in getting your own cluster running using Python, demonstrate how to run some large parallel computations using Python MPI wrappers, and show some initial results on cluster performance."

"Amazon EC2 may offer the possibility of high performance computing to programmers on a budget. Instead of building and maintaining a permanent Beowulf cluster, we can launch a cluster on-demand using Python and EC2. This talk will cover the basics involved in getting your own cluster running using Python, demonstrate how to run some large parallel computations using Python MPI wrappers, and show some initial results on cluster performance."

Tuesday, November 18, 2008

Oracle EBS cross references

When running a Oracle E-Business suite for a company who is handling goods you can come into a position that one product can have more than one item code. In a ideal world you would always have a one to one coupling between a 'tangible' and a item number. In some cases, think about for example a transition phase between a old system and a new system, you might need to have a many to one situation.

In this example we will discussing about migrating from SAP to oracle E-Business suite. In the scoping sessions the customer pointed out that he also want to give all his products new item numbers. The problem is that the people who work at the order entry department are so used to the old numbers that they would like to keep the old numbers in the system for the period of a year and the Product Data Management department stated they do not want to maintain every item twice. In this situation your best option is to make a list containing all the cross references of the old item numbers and link them to the new item numbers. You can even set a end date for the list that it will become unavailable after a year.

By using cross references you the Product Data Management department will not have to maintain old and new items in the system and the Order Entry department will be able to use the old items numbers for a period of time. You can find the cross references list under the Order Management Super User responsibility, go to Items -> Cross References.

Here you can set a Type, a description and a end date. The type is a free field where you can give the cross reference a meaningful short name like in this example 'OLD_ITEMNUMBER'. The description can be something like 'The old item number of the old SAP system'. At the end date field you can set the end date on which the cross reference will become unavailable to users. If at some point after this end date is reached there is still a need to use it again you can remove the end date again and the functionality will become available again. When you have set this information you can click on the Assign button and a new screen will open where you can assign inventory items to the list and provide the old item number for cross referencing.

Now when someone uses a old SAP number in Oracle it will be linked to the Oracle Item number. When a SAP number is the same as a real Oracle item number the user will be presented with a choice where he can see what the product is with the real number and the product linked to the old SAP number.

Cross references can be found in the database in the table mtl_cross_references.

Monday, November 17, 2008

Oracle and Drop Shipment

Drop Shipment is the process where you ask your supplier to ship the goods to your end customer instead of shipping the goods from your own warehouse. Drop Shipment can be the standard way your company is operating because you do not a own warehouse, also it can be done in cases that you do not have a requested item on stock or the item cannot be housed in your own warehouse.

For example you might be doing business in appendage for offshore oil-drilling, most of the requested item on a order from a drilling platform can be sourced from your local warehouse, however, the drilling pipes are longer than your average shelve so the decision is made that drilling pipes will be sourced from the supplier/factory directly. In those cases you can use a Drop Shipment method. In the figure below we can see the order, goods and invoice flow for the ordering of those drilling pipes order with a Drop Shipment.

  • 1 The customer places a purchase order for x drilling pipes.
  • A The order desk receives the order and creates an drop shipment order, the requisition import is done and from the requisition a purchase order is created.
  • 2 After approving the purchase order is send to the supplier via mail, e-mail, fax or EDI
  • B The supplier receives the purchase order and handles this at their order desk as a normal order
  • 3 The supplier ships the goods to your end customer
  • 4 The supplier sends an invoice for the goods to you.
  • 5 An invoice is send from you to the end customer

By these steps the complete flow is done, your customer has received the goods directly and received a invoice from the goods from you. You have received an invoice from the supplier and by this the goods flow and the financial flow are completed.

To automate this process you have to make use of “Requisition Import” And “Autocreate PO”. By making sure your processes are aligned properly and all data that is required is in the Oracle E-Business suite master you can have completed the process of creating an order until sending a Purchase Order to your supplier in a matter of minutes.

When importing your requisitions and generating your Purchase Orders you have the option to group on a couple of parameters. The most used is the “Supplier” parameter. This will group all your requisitions into a single Purchase Order to your supplier. Per line the quantity per ship-to address will be listed. This way you have the ability to send your supplier for example once a day a complete order containing all the required goods from orders from that day.
In short, when you have setup your drop shipment process correctly and it is implemented in a good way this can save you lots of time and work in your day to day work and will keep your customers satisfaction on a higher level due to the fact that you can process their orders even do you do not have it on stock but source the goods via Oracle E-business suite directly from the warehouse of you supplier.

Oracle demand planning with Demantra

When selling and/or producing goods creating operational forecasts for replenishment can be a complex task. Some products will be fast movers others will be slow movers, some products will be promoted during a certain period of time and some will be under the influence of weather, season or the geographical region in which they are being sold. Taking these, and even more, factors into consideration you will get a multi-dimensional model which you have to maintain and feed with new and accurate data.

One of the key factors of a demand planning model is to keep it running with the latest data of your company so the model can detect new trends upon old trends and come with accurate predictions to help you plan your day to day business. To create such models and keep the new data coming in Oracle has a rich set of demand planning models for you to use, seasonal, nonseasonal, and moving-average forecasting models. All those models will be filled with your company data from Oracle E-Business suite so you do not have to worry about filling a separate data warehouse for you forecast models.

A story by David Baum in Oracle Profit magazine is explaining how this is done by “Jack Of All Games”.

Jack of All Games (JOAG), the largest video game distributor in the United States, reports success with its vendor-managed inventory (VMI) program. The VMI program came about after JOAG completed an intensive business intelligence initiative that involved collecting point-of-sale data from thousands of stores and analyzing data on which titles customers were buying. JOAG then approached retailers with the opportunity to share this information.

Eric Clark, vice president of business systems and technology at JOAG, says, "Retailers want us to keep their shelves filled, so our challenge is to determine the optimum quantity of each title based on the demand trends, local demographics, and a number of other constantly fluctuating variables."

JOAG recently installed Oracle's Demantra Demand Management, a software package that allows warehouse managers to sense demand in real time by capturing point-of-sale information from retailers. JOAG runs the information through Demantra's analytical engine and develops a fulfillment strategy for replenishing its retailers' stock.

Oracle has acquired Demantra, a leading global provider of demand-driven planning solutions.

Demantra is a best-in-class provider of demand management, sales and operations planning, and trade promotions management solutions. With this acquisition, Oracle plans to offer customers a compelling, comprehensive solution for the extended enterprise that enhances demand visibility with powerful analytics for more accurate demand-driven planning, forecasting, and modeling. With Demantra's proven demand chain solutions, and Oracle's leading technology infrastructure and existing ERP and supply chain applications, we plan to provide a seamless solution for the lean enterprise.

Handling hazardous goods with Oracle

Companies handling dangerous and/or hazardous goods are required to closely monitor those goods and keep up with legislation for purchasing, handling, storage and sales. To be able to correctly track those kinds of goods Oracle E-Business suite give you the ability to give a product a hazard class.

Several standards of classifying goods exist, however, the leading standard is maintained by the United Nations Committee of Experts on the Transport of Dangerous Goods. This standard is recognized by most countries and used to classify goods. The major exception on this is the classification used in the United States which uses NA (North America) numbering principle which is maintained by the United States Department of Transportation. Even do it is in principal a different standard the numbering is exactly the same as the numbering system UN numbers. UN numbers are also referred to as UN IDs, four-digit numbers that identify hazardous substances, and articles (such as explosives, flammable liquids, toxic substances, etc.).

In Oracle E-Business suite the UN Number of a item can be inserted and associated to the official Hazard Class. This enables users to identify items and hard classes and enables them to act upon them. Certain items are, for example, not allowed to be stored next to other items; you are only allowed to stock a certain amount per warehouse. All of those rules can be setup and will require the numbering and classification as basis. Also Oracle provides methods to report upon hazard classes so you will be able to report on the amount of flammable stock in a warehouse or the amount of radioactive stock in a certain sub inventory.

Even do Oracle directly refers to the UN number you are not limited to UN number system, you are completely free to create the logic and values behind this system based upon for example local legislation or company classifications. Handling dangerous and/or hazardous goods requires good and solid rules of handling; Oracle E-business suite is helping with a good out off the box framework which enables you to correctly implement those rules within your organization.

Wednesday, November 12, 2008

Photo stream NYC

I received some comments from people on a recent post about my trip to New York. I made a promise that I would show you some pictures. Well, Joost Remme posted some of the pictures of the trip on his photo site so you can take a look :-). I hope to receive some more pictures and will make sure you get a link to that location as soon as it is available.

The picture on top of this post is a very large MM in toysrus, we where under the impression this was the biggest MM we would ever see and that we never never would see more MM's in the same room (on the other side are a couple of tubes with MM's). However 100 meters out of the shop we found MM world.... just see the pictures..... that is all I can say.

So oTTo,... enjoy :-)

UNIX lsof

Operating Oracle Application servers under Linux and UNIX requires from time to time that you find out why the application is having performance problems. When starting to debug the application server one of the first things you most likely will be doing is mine the logfiles, check all kind of Oracle tools and at some point you will have to start looking at the operating system. When looking at the operating system one of your best friends will be lsof. lsof stands for LiSt Of Files and lists information about files opened by processes for the following UNIX dialects. As everything under Linux is a file this tool will show you everything you could possible want to know.

For example you can list all the information about what is happening on your interfaces when you like to know things about the interface extend the lsof command with a -i and if you like to know something about a specific port you can extend the lsof command with -i :(port-number). For example you can use the following command 'lsof -i :521'. This will give you all the information about the processes running in conjunction with port 521.

However, lsof is not limited to interfaces only, you can for example list everything that is linked to a specific process id. For example I checked which process id is my current bash shell and found out that it is 184. So the command 'lsof -p 184' will show me the following:

johan-louwerss-macbook-pro:Versions jlouwers$ lsof -p 184
bash 184 jlouwers cwd DIR 14,2 476 166647 /System/Library/Frameworks/JavaVM.framework/Versions
bash 184 jlouwers txt REG 14,2 1244928 21392 /bin/bash
bash 184 jlouwers txt REG 14,2 1059776 21697 /usr/lib/dyld
bash 184 jlouwers txt REG 14,2 134975488 700983 /private/var/db/dyld/dyld_shared_cache_i386
bash 184 jlouwers 0u CHR 16,0 0t315770 153056004 /dev/ttys000
bash 184 jlouwers 1u CHR 16,0 0t315770 153056004 /dev/ttys000
bash 184 jlouwers 2u CHR 16,0 0t315770 153056004 /dev/ttys000
bash 184 jlouwers 255u CHR 16,0 0t315770 153056004 /dev/ttys000
johan-louwerss-macbook-pro:Versions jlouwers$

lsof is also a 'replacement' for the fuser command. You can extend the lsof command wit a +d. For example execute the command: lsof +d /var/log/messages you will get a list of all processes who are writing and keeping locks on this file.

There are a lot more options in lsof you have to explore. just do a man lsof and you will find a lot more options that you can use.

Tuesday, November 11, 2008

Oracle Social CRM

Oracle is launching a new line of social marketing and social CRM applications. The new line of applications is enrrched with web2.0 options and is ideal to communicate with online social networks and incorperate the information from those sources into the application. Fully integrated with your on demand or on premise CRM and other critical enterprise data, these applications help users sell more while entering less data.

You have to check the flash demo here.....

Monday, November 10, 2008

Certified Software on Oracle VM

Oracle launched today a new release of note 464754.1 "Certified Software on Oracle VM". Here they list all Oracle applications which are certified to run on Oracle Vm:

Oracle database:
Oracle Database 10gR2 ( and up) for Linux x86 and Linux x86-64
Oracle Database 11gR1 for Linux x86 and Linux x86-64

Oracle Real Application Clusters (RAC):
Oracle (10gR2) RAC for Linux x86 certified on Oracle VM

Enterprise Manager:
EM Grid Control for Linux x86
EM Grid Control for Linux x86-64

Application Server:
Application Server 10gR2 (, patchset) for Linux x86 and Linux x86-64
Application Server 10gR3 for Linux x86 and Linux x86-64

Shared Services version 9.3.1
Hyperion Essbase Server version 9.3.1
Hyperion Reporting and Analysis version 9.3.1

JD Edwards:
JD Edwards EnterpriseOne enterprise, database, and web servers are supported to run with Oracle VM in Oracle Enterprise Linux 5 or Red Hat Enterprise Linux 5 x86-64 guests. The support begins with JD Edwards EnterpriseOne Tools 8.97.2 and Applications 8.12

Berkeley DB:
Berkeley DB Java Edition version 3.2 Linux x86
Berkeley DB version 4.6 Linux x86
Berkeley DB XML version 2.3 Linux x86

TimesTen and above for Linux x86 and Linux x86-64

Oracle E-Business Suite:
Oracle Applications 11.5.10 CU2 or later with 11i.ATG_PF.H.RUP5 (Patch 5473858) or later for Linux x86
Oracle Applications R12 with Oracle E-Business Suite 12.0.2 Release Update Pack RUP2 (Patch 5473858) or later for Linux x86
Oracle E-Business Suite Release 12 is certified with 64-bit Oracle Enterprise Linux (OEL) 4 and 64-bit Red Hat Enterprise Linux (RHEL) 4 on x86-64 with Oracle VM.

Siebel 8.0 and above on Linux x86

PeopleTools 8.49.07 and above allows PeopleSoft applications 8.4x and 9 to utilize Oracle Virtualization in a certified guest Linux environment.

Oracle Retail:
Oracle Retail supports the use of VM technology . As Application Server 10gR2 and 10gR3 and DB 10gR2 are certified on Oracle VM, Oracle Retail supports version 13.x of the following applications (all are certified on OEL 4:) RMS, RTM, ReIM, ReSA, ARI , RPM, Allocation, SIM, RIB, RDW, WMS GUI, MDO and Central Office.

Oracle Financial Services Software Limited(formerly i-flex Solutions Limited):
FLEXCUBE V.UM Release 10.0 and above for Linux x86 and x86-64.

Oracle WebLogic Platform 10.3:
WebLogic Server 10.3 on OEL4 and OEL5, x86 and x86_64 guest os
WebLogic Portal 10.3 on OEL4 and OEL5, x86 and x86_64 guest os
Workshop for WebLogic 10.3 IDE on OEL4 x86 guest os
Workshop for WebLogic 10.3 runtime on OEL4 and OEL5, x86 and x86_64 guest os

Oracle forms find user

When working with Oracle forms 11i you can find yourself in the position you see a large load on your system and you are able to find the process ID. Now the trick is to find the oracle apps user which is associated with the UNIX process id. Metalink is advising you some things and this script can come handy when you need to find the user:

column "User Name" format a10
column "ClPID" format a8

d.user_name "User Name",
b.sid SID,b.serial# "Serial#", c.spid "srvPID", a.SPID "ClPID",
to_char(START_TIME,'DD-MON-YY HH:MM:SS') "STime"
fnd_logins a, v$session b, v$process c, fnd_user d
b.paddr = c.addr
and a.spid = b.process
and d.user_id = a.user_id
and (d.user_name = 'USER_NAME' OR 1=1)
and a.SPID = &PID

"This note can help in case that your f60webmx process id very intense or high
CPU usage / memory and you want to identify who has created that session. The script output can also help to determine the apps user that used Ctrl-Alt-Del to close an Oracle Applications 11i session and that session hung on the Forms-tier/DB-tier."

Sunday, November 09, 2008

New Oracle VM templates

Oracle launched a couple of new templates for Oracle VM which you can download and use to quickly setup a operating system and Oracle environment. By enabling customers to download complete VM templates Oracle is building a strong adoption to the way Oracle is viewing virtualization with Oracle VM and XEN. Currently Oracle is proving the following templates for downloading:

• Oracle Application Server 10g Release 3 Webcenter
• Oracle Database 10g Release 2 (
• Oracle Database 11g
• Oracle Enterprise Linux
• Oracle Enterprise Manager 10g (
• Oracle Fusion Middleware Service Oriented Architecture on WebLogic Server 9.2 (
• Oracle Siebel CRM 8

New York City

For those of you who are wondering why I was not updating my weblog and why you received out of the office messages on your mails. I have been spending some in New York City. I have been visiting the city with my girlfriend and 2 other people and have been doing mainly the big tourist things. Also made a quick visit to Coen and his wife and son so we could see the new house the have on the other side of the Hudson river.

I will be posting a small collection of pictures about the trip on my weblog for those of you who are interested. For now however a short version of the things we have been doing. Jazz-cafe, top of the rock, MoMa, Central park, Amercian Museum of Natural History, halloween, and much much more... sorry you will have to wait for the pictures :-)

Windows Essential Business Server

Microsoft launched on Friday a new server named 'Windows Essential Business Server' which is in fact a all in one solution for the small and medium sized businesses. WEBS is providing the customers with a central server platform where you can make some choices on what you want the server to be in your network. The image above is providing a clear overview . Nice to notice is that in the Premium version you can also choose to setup a database server.

You can find the press-release on the Microsoft site.