XMLConfig Import Fails when creating new application

Technote (FAQ)
Problem
Using XMLConfig to create a new Application in WebSphereŽ Application Server v3.5.2 causes several errors, including Oracle ORA-08177 and "ServletConfig X Failed to create Servlet" Transaction rolledback exception.
Solution
Create new Application Server through XMLConfig import command and throws the following 2 errors:
  1. Error 1 was generated when running the xml script to create the Application Server
  2. Error 2 was generated at the same time in the tracefile.

Error 1:

[02.10.09 15:11:29:219 PDT] 198e7ec ServletConfig A Importing Servlet :
SelectCabinBuildServlet
[02.10.09 15:11:36:127 PDT] 198e7ec ServletConfig A Importing Servlet :
FareSummaryBuildServlet
[02.10.09 15:11:42:049 PDT] 198e7ec ServletConfig A Importing Servlet :
ProductDeparturePredicate
[02.10.09 15:11:42:474 PDT] 198e7ec ServletConfig X Failed to create Servlet
: ProductDeparturePredicateRemote Exception
com.ibm.ejs.container.CreateFailureException:
org.omg.CORBA.TRANSACTION_ROLLEDBACK:
com.ibm.websphere.csi.CSITransactionRolledbackException
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at java.io.IOException.<init>(IOException.java:35)
at java.rmi.RemoteException.<init>(RemoteException.java:46)
at com.ibm.websphere.csi.CSIException.<init>(CSIException.java:18)
at com.ibm.websphere.csi.CSITransactionRolledbackException.<init>(CSITransactionRolledbackException.java:19)
at com.ibm.ejs.csi.TranStrategy.handleException(Compiled Code)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(Compiled Code)
at com.ibm.ejs.container.EJSContainer.postInvoke(Compiled Code)
at com.ibm.ejs.sm.beans.EJSRemoteURIHome.findByName(Compiled Code)
at com.ibm.ejs.sm.beans.ServletBean.setURIs(Compiled Code)
at com.ibm.ejs.sm.beans.ServletBean.updateInstanceVariables(Compiled Code)
at com.ibm.ejs.sm.beans.ServletBean.ejbCreate(Compiled Code)
at com.ibm.ejs.sm.beans.EJSServletHomeBean.create(Compiled Code)
at com.ibm.ejs.sm.beans.EJSRemoteServletHome.create(Compiled Code)
at com.ibm.ejs.sm.beans._EJSRemoteServletHome_Tie._invoke(Compiled Code)
at com.ibm.CORBA.iiop.ExtendedServerDelegate.dispatch(Compiled Code)
at com.ibm.CORBA.iiop.ORB.process(Compiled Code)
at com.ibm.CORBA.iiop.WorkerThread.run(Compiled Code)
at com.ibm.ejs.oa.pool.ThreadPool$PooledThread.run(Compiled Code) minor code: 0 completed: No; nested exception is: org.omg.CORBA.TRANSACTION_ROLLEDBACK:com.ibm.websphere.csi.CSITransactionRolledbackException
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at java.io.IOException.<init>(IOException.java:35)
at java.rmi.RemoteException.<init>(RemoteException.java:46)
at com.ibm.websphere.csi.CSIException.<init>(CSIException.java:18)
at com.ibm.websphere.csi.CSITransactionRolledbackException.<init>(CSITransactionRolledbackException.java:19)
at com.ibm.ejs.csi.TranStrategy.handleException(Compiled Code)
at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(Compiled Code)
at com.ibm.ejs.container.EJSContainer.postInvoke(Compiled Code)
at com.ibm.ejs.sm.beans.EJSRemoteURIHome.findByName(Compiled Code)
at com.ibm.ejs.sm.beans.ServletBean.setURIs(Compiled Code)
at com.ibm.ejs.sm.beans.ServletBean.updateInstanceVariables(Compiled Code)
at com.ibm.ejs.sm.beans.ServletBean.ejbCreate(Compiled Code)
at com.ibm.ejs.sm.beans.EJSServletHomeBean.create(Compiled Code)
at com.ibm.ejs.sm.beans.EJSRemoteServletHome.create(Compiled Code)
at com.ibm.ejs.sm.beans._EJSRemoteServletHome_Tie._invoke(Compiled Code)
at com.ibm.CORBA.iiop.ExtendedServerDelegate.dispatch(Compiled Code)
at com.ibm.CORBA.iiop.ORB.process(Compiled Code)
at com.ibm.CORBA.iiop.WorkerThread.run(Compiled Code)
at com.ibm.ejs.oa.pool.ThreadPool$PooledThread.run(Compiled Code)minor code: 0 completed: No
[02.10.09 15:11:42:577 PDT] 198e7ec ServletConfig A Importing Servlet :
QuickBookBuildServlet
[02.10.09 15:11:48:959 PDT] 198e7ec ServletConfig A Importing Servlet :
SearchSelectionServl

Error 2:

A ADMS0024I: WebSphere Administration server open for e-business
[02.10.09 15:05:29:514 PDT] 1e2d27b DBMgr W Exception on database
update: "insert into ejsadmin.OBJECT_TABLE
(INSTANCE_ID,TYPE_ID,VERSION,BINARY_ATTR) values(?, ?, ?, ?)"
java.sql.SQLException: ORA-08177: can't serialize access for this
transaction

at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at java.sql.SQLException.<init>(Compiled Code)
at oracle.jdbc.dbaccess.DBError.throwSqlException(Compiled Code)
at oracle.jdbc.ttc7.TTIoer.processError(Compiled Code)
at oracle.jdbc.ttc7.Oall7.receive(Compiled Code)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(Compiled Code)
at oracle.jdbc.ttc7.TTC7Protocol.executeFetch(Compiled Code)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(Compiled Code)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(Compiled Code)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(Compiled Code)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(Compiled Code)
at com.ibm.ejs.cm.cache.CachedStatement.executeUpdate(Compiled Code)
at com.ibm.ejs.cm.proxy.PreparedStatementProxy.executeUpdate(Compiled Code)
at com.ibm.ejs.sm.util.db.DBMgr.executePreparedUpdate(Compiled Code)
at com.ibm.ejs.sm.beans.RepositoryObjectImpl.create(Compiled Code)
at com.ibm.ejs.sm.beans.URIBean.ejbCreate(Compiled Code)
at com.ibm.ejs.sm.beans.EJSURIHomeBean.create(Compiled Code)
at com.ibm.ejs.sm.beans.EJSRemoteURIHome.create(Compiled Code)
at com.ibm.ejs.sm.beans._EJSRemoteURIHome_Tie._invoke(Compiled Code)
at com.ibm.CORBA.iiop.ExtendedServerDelegate.dispatch(Compiled Code)
at com.ibm.CORBA.iiop.ORB.process(Compiled Code)
at com.ibm.CORBA.iiop.WorkerThread.run(Compiled Code)
at com.ibm.ejs.oa.pool.ThreadPool$PooledThread.run(Compiled Code)

Solutions:
========

Client found the Oracle article for ORA-08177.

Client follows the following step to resolve the problem.

    1. Back up all database
    2. Export of Oracle table (ejsadmin.OBJECT_TABLE) entry
    3. Drop the table (ejsadmin.OBJECT_TABLE)
    4. Re-create the table (ejsadmin.OBJECT_TABLE)
    5. Import the table (ejsadmin.OBJECT_TABLE) entry
    6. Then he run the XMLConfig import script and XMLConfig import script run
    successfully.

ORACLE Article:
===========

This documentation was copy from ORACLE Website. Copyright (c) 1995,2000 Oracle Corporation. All Rights Reserved. Legal Notices and Terms of Use.

Problem Description:
===============

You are creating transactions in JDBC to use the transaction isolation level 'serializable'. In your code, you issue the statement setTransactionIsolation(TRANSACTION_SERIALIZABLE). When running two transactions, both affecting the same table, you intermittently receive an ora-8177 "Cannot serialize access for this transaciton" message.

Solution Description:
===============

There are two approaches to resolving this problem.

From the database side, you can increase your INITRANS for tables that will experience many transactions updating the same block. Doing so will enable Oracle to allocate sufficient storage in each block to record the history of recent transactions that accessed the block.

In your JDBC code, you should incorporate the following logic. When a serializable transaction fails with the ora-8177 error, the application can take several actions:

    1. Commit the work executed to that point.
    2. Execute additional (but different) statements (perhaps after rolling back
    to a savepoint established earlier in the transaction).
    3. Roll back the transaction.

Explanation:
=========

This is a valid error raised by Oracle because one serializable transaction has begun but before this transaction can commit another transaction in a different session has issued a request to set transaction isolation level serializable too. This is a timing issue.

Although this article pertains to JDBC, the problem and solution may apply to any application written in other languages.


Reference: Oracle 8i Concepts (8.1.5), Volume 2, p 27-8, Part A67783-01.

Historical Number
PMR 60256
B550
C000











Document Information

Product categories: Software, Application Servers, Distributed Application & Web Servers, WebSphere Application Server, Administrative Console (all non-scripting)
Operating system(s): Solaris
Software version: 3.5.2, 3.5
Software edition: Advanced
Reference #: 1175310
IBM Group: Software Group
Modified date: 2004-07-27