Category Archives: Oracle

Oracle ESB Web Service Returns a java.security.PrivilegedActionException

When sending information to a ESB Web Service a java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: Connection refused is returned.

Problem

If you try and access a ESB webservice on a webserver other than localhost and port 8888 the following error message is returned and the ESB flow is not run:

java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: Connection refused

 

Resolution

The ESB System that the Web Service is running under has not been configured to use the correct host and port.

In ESB Control click on the System that is running the Web Service (ie DefaultSystem).

Change:
Virtual Host = <hostname of the application server>
Port = Port number OC4J is running on

ORA-20603: Updating timezone region of a target is not supported

Enterprise manager does not start after updating the database. The emdb.nohup has an ORA-20603: Updating timezone region of a target is not supported error message in it.

The problem

The timezones have been updated within the database.

Solution

As Oracle run:

$ORACLE_HOME/bin/emctl resetTZ agent

and follow the instructions.  You’ll need the sysman or sys password to make the changes.

Viewing Oracle Application Server JMS Queues

When developing BPEL and ESB applications it is necessary to see if the message you sent actually made it on the queue. Using Hermes is an excellent way to view an application server queues and topics.

Problem

Need to view messages on a JMS Queue or Topic that you have published a message to.

 

Solution

Hermes is an opensouce solution to view JMS queues. But it doesn’t come out of the box to work with Oracle Application server and OC4J. Thankfully Mike Lehmann has created some information on how to do this http://mike-lehmann.blogspot.com/2006/09/i-was-working-with-oracleas-jms-over.html
Also helpful is the provider configuration information on the hermes websitehttp://www.hermesjms.com/confluence/display/HJMS/Oracleprovided by Demed L’Her. The viewlet is especially helpful for first time users.

Changing JMS Connection Password in Oracle SOA Suite

By default the the password for eis/Jms/TopicConnectionFactory JMS Connection is welcome1. This needs to be changed if the oc4jadmin password is not set to this.

Problem

After creating an ESB process you are unable to write to a JMS topic.  The following error message is displayed in the ESB Console:

The Adapter Framework was unable to establish an outbound JCA connection due to the following issue: ORABPEL-12133
ERRJMS_JMS_EXCEP.
Unable to create JMS connection due to JMS exception.
Please examine the log file to determine the problem.
 [Caused by: JMSServer[soasuite01.markcallen.com:12601]: failed to authenticate "oc4jadmin/welcome1" via "[JAZNUserAdaptor: user=oc4jadmin]".]

 

Solution

The password for the TopicConnectionFactory needs to be changed.

Go to the SOA Suite Enterprise Manager:

http://<hostname>:<port>/em/

  • Click on the Home JVM
  • Click on the Applications tab
  • Select Standalone Applications from the View drop down list
  • Click on the JMSAdapter link
  • Click on the Connection Factories tab
  • Click on eis/JMS/TopicConnectionFactory
  • Change the password to the SOA Suites oc4jadmin password.
  • Press the Apply button.

Try the ESB process again.

ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

The database trying to be connected to is not running. Ensure the Oracle database is running and that the TNS entry you are using is correct.

Resolution

Start the Oracle Database

 

Windows start the OracleServiceXE service.

Linux login as oracle and run dbstart.

 

Test TNS

To test TNS run tnsping on the command line and give it the TNS name you are trying to use:

 

tnsping <tns name>

 

 

 

Oracle XE Tuning

Oracle XE is an excellent starter database, but under normal loads the out of the box parameters need to be increased.

Database Sessions

Increase the number of sessions that the database can handle at one time.  This will allow for more users to access the database.

sqlplus /nolog
SQL> show parameters sessions
SQL> alter system set sessions=250 scope=spfile;

restart the database.

 

Database Processes

Increase the number of database processes that can be running at one time.  This will allow for more users to connect to the database.

sqlplus /nolog
SQL> show parameters processes
SQL> alter system set processes=200 scope=spfile;

restart the database.

 

Starting Oracle Enterprise Manager

For the oracle database Enterprise Manager (EM) runs on port 1158. But it needs to be started by itself.

Linux

Login as oracle and run:

$ORACLE_HOME/bin/emctl start dbconsole

On some systems a xserver session needs to be running for the graphs to be created correctly.  The best solution for this is to run vncserver on port 5910 and set the display to use :10.

Run:

vncserver :10

set DISPLAY=localhost:10

Then start EM.

Oracle XE Backup

After installing Oracle XE you should setup backups.

Backups for XE

For Oracle XE there is ready a backup script that uses Oracle’s RMAN.

 

Setup Archive Log Mode

After installing the database change it to archivelog mode:

[oracle@localhost ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Sun May 25 01:28:00 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> connect / as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area  289406976 bytes
Fixed Size                  1258488 bytes
Variable Size              92277768 bytes
Database Buffers          192937984 bytes
Redo Buffers                2932736 bytes
Database mounted.
SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL>

To make sure the database is really in archive log mode run the following sql statement:

SQL> SELECT LOG_MODE FROM SYS.V$DATABASE;

LOG_MODE
------------
ARCHIVELOG

SQL>

Run the Initial Backup

Windows run $ORACLE_HOME/bin/Backup.bat

Linux run $ORACLE_HOME/config/scripts/backup.sh

[oracle@localhost ~]$ $ORACLE_HOME/config/scripts/backup.sh 
Doing online backup of the database.
Backup of the database succeeded.
Log file is at /usr/lib/oracle/xe/oxe_backup_current.log.
Press ENTER key to exit
[oracle@localhost ~]$

 

Run the Backups Daily

Windows add the $ORACLE_HOME/bin/Backup.bat to a job scheduler.

  • Make sure the user running the job is the same user who installed Oracle.

 

Linux add the $ORACLE_HOME/config/scripts/backup.sh to cron.daily

  • Remove the user notification line from the end of the script

 

Backing up files

Make sure that your backup script backups up the $ORACLE_HOME directory.  On windows make sure the oradata directory is excluded since this might cause file locking issues.