Tuesday, 31 July 2012

identifying what is in the oracle database download files

I have a similar post at http://shannonscncjdeblog.blogspot.com.au/search?q=oracle+download#!/2012/05/oracle-11203-downloads.html but the text was not searchable, as it was in a screen shot.  So I thought I would do it again, because I’m always doing the same things.

In general, you can identify the disks that you want with the following guide:

 

p10404530_112030_LINUX_1of7.zip 1.2 GB – DB

p10404530_112030_LINUX_2of7.zip 1.1 GB  - DB

p10404530_112030_LINUX_3of7.zip 916.2 MB - RAC

p10404530_112030_LINUX_4of7.zip 617.5 MB  - Client

p10404530_112030_LINUX_5of7.zip 577.3 MB  - Gateways

p10404530_112030_LINUX_6of7.zip 457.6 MB  - examples

p10404530_112030_LINUX_7of7.zip 108.5 MB – not too sure

command line proxy options for wget or other software linux and other handy commands when installing OVMM

proxy for a command

export http_proxy=http://smoir:password@proxy:8080

then

wget http://public-yum.oracle.com/public-yum-el5.repo

 

mounting an iso file as a CD / DVD

mount -t iso9660 -o loop test.iso /mnt/test
create the mount point first of course
mount -t iso9660 -o loop /path/to/filename /mnt/loop0
 
If you are lazy about firewall rules
Turn off firewall permanently
chkconfig iptables off
 
Final snippet for changng hard files warning
OVMM install
hard files not 8192

b.Edit /etc/security/limits.conf
root soft nofile 8192


root hard nofile 8192
c. Restart machine

Monday, 30 July 2012

OVM 3.1.1 problems with HP EVA 4400 SAN, G7 hosts

This is a few words about an OVM installation at a new client.  The OVM install is awesome now, talk about a quantum leap from 2 and 3 flat.  The bonding and bridging is super simple and the multipathing worked straight out of the box (when the SAN LUNs were right).

We did have some problems with LUNs coming up on one host and not the other.  Even a rebuild of OVS on the hosts did not fix it – What?  So we had the SAN LUNs created again and then EVERYTHING worked out of the box.  It would have taken < 4 hours to build a highly available VM host infrastructure.  This gives 48 CPUs and 400 GB of RAM available in that very short amount of time.

image

Great doco from oracle.

http://docs.oracle.com/cd/E27300_01/index.html

quick start guide is great for when things work.  Finding answers when there are problems is much harder!

This was the error I was getting when trying to create the repository on the multipathed LUN

(07/26/2012 04:42:40:368 PM)
OVMAPI_B000E Storage plugin command [storage_plugin_createFileSystem] failed for storage server [0004fb0000090000dbe3a865f23402d3] failed with [com.oracle.ovm.mgr.api.exception.FailedOperationException: OVMAPI_4010E Attempt to send command: dispatch to server: ssydovm03.xxx.local failed. OVMAPI_4004E Server Failed Command: dispatch https://?uname?:?pwd?@192.168.8.63:8899/api/2 storage_plugin_createFileSystem oracle.ocfs2.OCFS2.OCFS2Plugin 0004fb0000050000577f7a4075a0ef54 /dev/mapper/360014380064896ea0001000001c00000 0, Status: OSCPlugin.InvalidValueEx:'The backing device /dev/mapper/360014380064896ea0001000001c00000 is not allowed to contain partitions'
Thu Jul 26 16:42:40 EST 2012
Thu Jul 26 16:42:40 EST 2012] OVMAPI_4010E Attempt to send command: dispatch to server: ssydovm03.xxx.local failed. OVMAPI_4004E Server Failed Command: dispatch https://?uname?:?pwd?@192.168.8.63:8899/api/2 storage_plugin_createFileSystem

This was fixed by creating a new LUN, there was something wrong with the disk.  Nothing wrong with OCFS2 or OVM.

The other multipath problem was also put down to a problem with the SAN LUNs.

Wednesday, 18 July 2012

performance problems with BIP–what do we do?

I’m talking about embedded BIP, that is embedded BIP in JD Edwards.  But at the end of the day, this is just BI Publisher with some handles / control from JD Edwards.  There might be some generic lessons learnt in this post.

Your JD Edwards job runs for 10 minutes and produces a load of invoices, and the BIP takes 45 minutes to deliver them!!  What makes it worse is that you cannot run concurrent BIP jobs because it falls apart, so THEN you have to guess when the BIP processing is complete before you run your next round of transformations.  Oh yes, you need to run multiple rounds of transformations because if you do them in one batch, the system falls over because it’s using too much memory and too much temp space…  AARRGGHH – when is it going to end.

What do you do first?

Probably look at https://support.oracle.com and get a bunch of recommendations about the size of the BIP JRE and a few other improvements that could occur in that area.  Look for document id 962712.1.  Sure you might get some improvements, but it’s just a stab in the dark.

You need to enable logging and look at logs.

goto the location of your xdo.cfg file in JDE.  I recommend going to $EVRHOME and doing a find . –name xdo.cfg –print to find where they might be:

[jde812@jdevap01.something.office]$ find . -name xdo.cfg -print
./system/jre/lib/xdo.cfg
./system/classes/xdo.cfg

Okay, lets get in there and create a xdodebug.cfg in the java runtime location, the top dir

[jde812@jdevap01.something.office]$ vi xdodebug.cfg
LogLevel=STATEMENT
LogDir=/tmp/xdodebug

You can see the above contents in the xdodebug.cfg

Next job that runs (yes – no restart required) will have logging on.  please we careful, there is a LOT of logging.

It leaves the temp jobs and all sorts of things in the /tmp dir – so only leave it on for the time that you need.

You’ll see files like the below:

-rw-r--r--  1 jde812 jde812   43463 Jul 17 14:45 xdo_071712_024547384_fo_out995.out
-rw-r--r--  1 jde812 jde812  110218 Jul 17 14:45 xdo_071712_024547569_fo_data_1997.xsl
-rw-r--r--  1 jde812 jde812    3937 Jul 17 14:45 xdo_071712_024547569_fo_data_1998.xml
-rw-r--r--  1 jde812 jde812    2119 Jul 17 14:45 xdo_071712_024547569_fo_fo_11000.fo
-rw-r--r--  1 jde812 jde812   43470 Jul 17 14:45 xdo_071712_024547569_fo_out999.out
-rw-r--r--  1 jde812 jde812  110218 Jul 17 14:45 xdo_071712_024547750_fo_data_11001.xsl
-rw-r--r--  1 jde812 jde812    3941 Jul 17 14:45 xdo_071712_024547750_fo_data_11002.xml
-rw-r--r--  1 jde812 jde812    2120 Jul 17 14:45 xdo_071712_024547750_fo_fo_11004.fo
-rw-r--r--  1 jde812 jde812   43465 Jul 17 14:45 xdo_071712_024547750_fo_out1003.out
-rw-r--r--  1 jde812 jde812  110218 Jul 17 14:45 xdo_071712_024547934_fo_data_11005.xsl

None of them have timestamps, so you really only want to look at xdo.log

They have fairly granular timestamping, so you can see what is taking a long time.

[071712_024602914]

For each burst job, the following is written to the logs:

[ PDF GENERATOR ]

So the gap between these tags is how log each “PDF generation took”.

[071712_091246515][][STATEMENT] [ PDF GENERATOR ]---------------------------------------------
[071712_091249539][][STATEMENT] [ PDF GENERATOR ]---------------------------------------------
[071712_091251271][][STATEMENT] [ PDF GENERATOR ]---------------------------------------------
[071712_091253486][][STATEMENT] [ PDF GENERATOR ]---------------------------------------------
[071712_091255749][][STATEMENT] [ PDF GENERATOR ]---------------------------------------------
[071712_091301647][][STATEMENT] [ PDF GENERATOR ]---------------------------------------------
[071712_091305388][][STATEMENT] [ PDF GENERATOR ]---------------------------------------------
[071712_091306836][][STATEMENT] [ PDF GENERATOR ]---------------------------------------------
[071712_091307698][][STATEMENT] [ PDF GENERATOR ]---------------------------------------------
[071712_091308514][][STATEMENT] [ PDF GENERATOR ]---------------------------------------------
[071712_091309424][][STATEMENT] [ PDF GENERATOR ]---------------------------------------------

so we can see that it’s about 2 seconds per PDF 9:12:46 to 9:13:09 23 seconds for 11 PDFs.

Email

All SMTP actions take place once all of the PDF generation occurs.  They do not send after each burst.  They do ALL bursting and then all sending.

searching the xdo.log for a string like the below, will show you how long each of the emails took:

[oracle.apps.xdo.delivery.smtp.SMTPDeliveryRequest][STATEMENT] submit(): Process done successfully. Exiting submit()

[071712_091310473][oracle.apps.xdo.delivery.smtp.SMTPDeliveryRequest][STATEMENT] submit(): Process done successfully. Exiting submit()
[071712_091310786][oracle.apps.xdo.delivery.smtp.SMTPDeliveryRequest][STATEMENT] submit(): Process done successfully. Exiting submit()
[071712_091311092][oracle.apps.xdo.delivery.smtp.SMTPDeliveryRequest][STATEMENT] submit(): Process done successfully. Exiting submit()
[071712_091311394][oracle.apps.xdo.delivery.smtp.SMTPDeliveryRequest][STATEMENT] submit(): Process done successfully. Exiting submit()
[071712_091311696][oracle.apps.xdo.delivery.smtp.SMTPDeliveryRequest][STATEMENT] submit(): Process done successfully. Exiting submit()
[071712_091312013][oracle.apps.xdo.delivery.smtp.SMTPDeliveryRequest][STATEMENT] submit(): Process done successfully. Exiting submit()
[071712_091312326][oracle.apps.xdo.delivery.smtp.SMTPDeliveryRequest][STATEMENT] submit(): Process done successfully. Exiting submit()

 

We can see from the above that it took 2 seconds to send 7 emails.

 

Memory

[071712_091251890][oracle.apps.xdo.template.FOProcessor][STATEMENT] End Memory: max=986MB, total=126MB, free=50MB
[071712_091252115][oracle.apps.xdo.template.FOProcessor][STATEMENT] Start Memory: max=986MB, total=126MB, free=35MB
[071712_091254045][oracle.apps.xdo.template.FOProcessor][STATEMENT] End Memory: max=986MB, total=125MB, free=61MB
[071712_091254193][oracle.apps.xdo.template.FOProcessor][STATEMENT] Start Memory: max=986MB, total=125MB, free=47MB
[071712_091257058][oracle.apps.xdo.template.FOProcessor][STATEMENT] End Memory: max=986MB, total=125MB, free=60MB
[071712_091257338][oracle.apps.xdo.template.FOProcessor][STATEMENT] Start Memory: max=986MB, total=125MB, free=39MB
[071712_091304392][oracle.apps.xdo.template.FOProcessor][STATEMENT] End Memory: max=986MB, total=121MB, free=20MB
[071712_091304479][oracle.apps.xdo.template.FOProcessor][STATEMENT] Start Memory: max=986MB, total=120MB, free=67MB
[071712_091306207][oracle.apps.xdo.template.FOProcessor][STATEMENT] End Memory: max=986MB, total=120MB, free=36MB
[071712_091306258][oracle.apps.xdo.template.FOProcessor][STATEMENT] Start Memory: max=986MB, total=120MB, free=28MB
[071712_091307271][oracle.apps.xdo.template.FOProcessor][STATEMENT] End Memory: max=986MB, total=113MB, free=43MB
[071712_091307296][oracle.apps.xdo.template.FOProcessor][STATEMENT] Start Memory: max=986MB, total=113MB, free=37MB
[071712_091308033][oracle.apps.xdo.template.FOProcessor][STATEMENT] End Memory: max=986MB, total=113MB, free=16MB
[071712_091308074][oracle.apps.xdo.template.FOProcessor][STATEMENT] Start Memory: max=986MB, total=115MB, free=62MB
[071712_091308869][oracle.apps.xdo.template.FOProcessor][STATEMENT] End Memory: max=986MB, total=115MB, free=40MB
[071712_091308908][oracle.apps.xdo.template.FOProcessor][STATEMENT] Start Memory: max=986MB, total=115MB, free=33MB
[071712_091309847][oracle.apps.xdo.template.FOProcessor][STATEMENT] End Memory: max=986MB, total=110MB, free=45MB

If you grep for “Memory” in the log file, you see the start and finish values for the JVM’s memory.  this might help on memory intensive jobs.

 

The actual PDFs

[jde812@jdevap01.something.office]$ cat xdo.log |grep "FOProcessor.setOutput(String)is called with" |grep 12_09
[071712_091248400][oracle.apps.xdo.template.FOProcessor][STATEMENT] FOProcessor.setOutput(String)is called with '/u03/temp/14114/071712_091246410/filehtgfqJ_EN-AU_TR5542565_001_2.pdf'.
[071712_091250524][oracle.apps.xdo.template.FOProcessor][STATEMENT] FOProcessor.setOutput(String)is called with '/u03/temp/14114/071712_091246410/filehtgfqJ_EN-AU_TR5542565_001_6.pdf'.
[071712_091252113][oracle.apps.xdo.template.FOProcessor][STATEMENT] FOProcessor.setOutput(String)is called with '/u03/temp/14114/071712_091246410/filehtgfqJ_EN-AU_TR5542565_001_9.pdf'.
[071712_091254191][oracle.apps.xdo.template.FOProcessor][STATEMENT] FOProcessor.setOutput(String)is called with '/u03/temp/14114/071712_091246410/filehtgfqJ_EN-AU_TR5542565_001_12.pdf'.
[071712_091257336][oracle.apps.xdo.template.FOProcessor][STATEMENT] FOProcessor.setOutput(String)is called with '/u03/temp/14114/071712_091246410/filehtgfqJ_EN-AU_TR5542565_001_15.pdf'.
[071712_091304470][oracle.apps.xdo.template.FOProcessor][STATEMENT] FOProcessor.setOutput(String)is called with '/u03/temp/14114/071712_091246410/filehtgfqJ_EN-AU_TR5542565_001_18.pdf'.
[071712_091306255][oracle.apps.xdo.template.FOProcessor][STATEMENT] FOProcessor.setOutput(String)is called with '/u03/temp/14114/071712_091246410/filehtgfqJ_EN-AU_TR5542565_001_21.pdf'.
[071712_091307294][oracle.apps.xdo.template.FOProcessor][STATEMENT] FOProcessor.setOutput(String)is called with '/u03/temp/14114/071712_091246410/filehtgfqJ_EN-AU_TR5542565_001_24.pdf'.
[071712_091308072][oracle.apps.xdo.template.FOProcessor][STATEMENT] FOProcessor.setOutput(String)is called with '/u03/temp/14114/071712_091246410/filehtgfqJ_EN-AU_TR5542565_001_27.pdf'.
[071712_091308906][oracle.apps.xdo.template.FOProcessor][STATEMENT] FOProcessor.setOutput(String)is called with '/u03/temp/14114/071712_091246410/filehtgfqJ_EN-AU_TR5542565_001_30.pdf'.

 

So now it’s time to drill down further to get some more performance out of this thing, any maybe some more benchmarking.

Wednesday, 11 July 2012

Breadcrumbs and tools release 9.1.0.4–what is it?

You remember the tale of Hansel and Gretel being sent into the forest by the evil step-mother.  Hansel thought he was super smart and left a trail of breadcrumbs so that he could find his way back home…  We’ll JD Edwards is doing the same in their new tools release, and these are not going to get eaten up by all of the forest animals!

It’s a super simple enhancement that takes up a little bit of screen real-estate.  But, does allow you to see where you are in the complicated world that E1 menus sometimes are.

image

You can see this in action on our demo environment.  We’ve got the latest tools and technology available for testing through the web:

http://e1web.myriad-it.com:9088/jde/owhtml

username:  MYR_DEMO

password: demopwd

Tuesday, 3 July 2012

EM12C agent redeploy

Okay, so now you have BP1 to install and the upgrade instructions look heinous… What are you going to do?  Truck on with the upgrade – or reinstall with BP1.  I’ve decided to do the reinstall.

Basically, created my new OEL VM on OVM.

Installed 11GR2 DB

Installed EM12C BP1 on new machine, mentioning database above

now, it’s time for the agents and the new JD Edwards management software, notifications and software updates (NOT FUN!!!)

I developed a script that you might be able to use, but I suggest testing it carefully.

  1. In general to locates the oracle inventory and cycles through the 12c components and uninstalls them
  2. It kills the 12c agent processes
  3. If called with CLEAN as the only parameter will remove the entire base directory for the 12C agent installation.

#!/usr/bin/ksh
#kill the management procs
kill -9 `ps -ef |grep 12c| grep -v grep| awk '{print $2}'`

#call runInstaller to remove the components
# get a list of the components from oraInventory
ORACLE_INVENTORY=`cat /etc/oraInst.loc | awk -F\= '/inventory_loc/{print $2}'`
echo $ORACLE_INVENTORY
#list EM12C components
SOFTWARELIST=`cat $ORACLE_INVENTORY/ContentsXML/inventory.xml |grep REFHOME |grep 12c | awk -F\" '{printf("%s,",$2)} END {} '`
echo $SOFTWARELIST
#append the actual home to the list
AGENTHOME=`cat $ORACLE_INVENTORY/ContentsXML/inventory.xml | awk -F\" '/agent12c/ {print $4}'`
echo $AGENTHOME
BASEDIR=`echo $AGENTHOME | awk -F/ 'BEGIN {} { for (i=2;i<NF-1;i++) printf("/%s",$i) } END {}'`
echo $BASEDIR

#We now have the reference homes and the Agent home, so delete them
if [ -x "$AGENTHOME/oui/bin/runInstaller" ]
  then
    #we can delete
    $AGENTHOME/oui/bin/runInstaller -silent "REMOVE_HOMES={$SOFTWARELIST}" -deinstall -waitForCompletion -local
    $AGENTHOME/oui/bin/runInstaller -silent "REMOVE_HOMES={$AGENTHOME}" -deinstall -waitForCompletion -local
else
  echo "cannot execute $AGENTHOME/oui/bin/runInstaller"
fi

if [ -d $BASEDIR ]
then
  if [ "$1" == "CLEAN" ]
    then
      rm -Rf $BASEDIR
  else
      echo "NOT CALLED WITH CLEAN OPTION, therefore no force remove"
  fi
else
  echo "$BASEDIR not exists or not writable"
fi

exit 0

You can do everything this script does manually, but that might take you a while.

An interesting test would be to create this script as a “procedure” in your original console and deploy and run it.  This would have the affect of (hopefully) deleting all components and then allowing you to deploy this to all of your hosts!

Once the script has executed, you may then install your new agents via your BP1 console.

Monday, 2 July 2012

increase the swapfile space on Oracle Enterprise Linux (OEL)

Trying to install oracle products and are getting:

image

Swap Size - This is a prerequisite condition to test whether sufficient total swap space is available on the system.
Expected Value
: 3.9122GB (4102288.0KB)
Actual Value
: 1.9994GB (2096472.0KB)
Details:
-
PRVF-7573 : Sufficient swap size is not available on node "myrem12c" [Required = 3.9122GB (4102288.0KB) ; Found = 1.9994GB (2096472.0KB)]  - Cause:  The swap size found does not meet the minimum requirement.  - Action:  Increase swap size to at least meet the minimum swap space requirement.

 

check what swap you have on the machine, as any user:

swapon –s

Filename                                Type            Size    Used    Priority
/dev/xvda3                              partition       2096472 0       -1

Create a file that you’ll use for swap with dd (as root)

[root@myrem12c em12cBP1]# dd if=/dev/zero of=/home/swapfile bs=2048 count=1048576
1048576+0 records in
1048576+0 records out
2147483648 bytes (2.1 GB) copied, 33.498 seconds, 64.1 MB/s

mkswap /home/swapfile

swapon /home/swapfile

swapon -a

[root@myrem12c em12cBP1]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/xvda3                              partition       2096472 0       -1
/home/swapfile                          file            2097144 0       -2

Extending JDE to generative AI