IBM Support

Running caupgrade script failed in IBM FileNet Case Foundation 5.2.1

Troubleshooting


Problem

Failing to upgrade Case Analyzer from 5.0 to 5.2.1 when running the caupgrade script.

Symptom

n/a

Cause

Failing to upgrade Case Analyzer from 5.0 to 5.2.1 when running the caupgrade script.

The JDBC Distributed Transaction Components were not configured correctly. The error message appears in the caupgrade_in_mmddyyyy.properties log as follows:

Terminated with error:

Error: [FNRPE2131090448E]RPC=bootstrapGCDConfiguration failed, errorTuple=0, errorTxt=Error updating a CmDatabaseConnection object.
com.filenet.api.exception.EngineRuntimeException: FNRCE0016E: E_DATABASE_ERROR: The operation was unable to read from or write to the database. Property: "JNDIXADataSource", Value: "FNSBMCAXA" failedBatchItem=0 errorStack={
at com.filenet.engine.persist.CmDatabaseConnectionPersister.verifyProperties(CmDatabaseConnectionPersister.java:187)
at com.filenet.engine.persist.BaseGCDPersister.preExecuteChange(BaseGCDPersister.java:421)
at com.filenet.engine.persist.CmDatabaseConnectionPersister.preExecuteChange(CmDatabaseConnectionPersister.java:81)
at com.filenet.engine.persist.BaseGCDPersister.executeChangeWork(BaseGCDPersister.java:220)
at com.filenet.engine.persist.IndependentPersister.executeChange(IndependentPersister.java:339)
at com.filenet.engine.persist.BaseGCDPersister.executeChange(BaseGCDPersister.java:129)
at com.filenet.engine.jca.impl.RequestBrokerImpl.executeChanges(RequestBrokerImpl.java:1380)
at com.filenet.engine.jca.impl.RequestBrokerImpl.executeChanges(RequestBrokerImpl.java:1238)
at com.filenet.engine.ejb.EngineCoreBean._executeChanges(EngineCoreBean.java:619)
at com.filenet.engine.ejb.EngineCoreBean.executeChanges(EngineCoreBean.java:586)
at com.filenet.engine.ejb.EJSLocalStatelessEngineCore_22877cb1.executeChanges(Unknown Source)
at com.filenet.engine.ejb.EngineBean.executeChanges(EngineBean.java:913)
at com.filenet.apiimpl.transport.ejbstubs.EJSRemoteStatelessEngine_2e64c374.executeChanges(Unknown Source)
at com.filenet.apiimpl.transport.ejbstubs._Engine_Stub.executeChanges(_Engine_Stub.java:671)
at com.filenet.apiimpl.transport.ejb.EJBSession$EJBImpl._executeChanges(EJBSession.java:861)
at com.filenet.apiimpl.transport.ejb.EJBSession$EJBImpl.executeChanges(EJBSession.java:602)
at com.filenet.apiimpl.transport.ejb.EJBSession.executeChanges(EJBSession.java:393)
at com.filenet.apiimpl.util.SessionHandle.executeChanges(SessionHandle.java:112)
at com.filenet.apiimpl.core.Session.callExecuteChanges(Session.java:146)
at com.filenet.apiimpl.core.Session.executeChanges(Session.java:532)
at com.filenet.apiimpl.core.Session.executeChange(Session.java:850)
at com.filenet.apiimpl.core.IndependentlyPersistableObjectImpl.save(IndependentlyPersistableObjectImpl.java:76)
at com.filenet.apiimpl.core.IndependentlyPersistableObjectImpl.save(IndependentlyPersistableObjectImpl.java:67)
at filenet.eventexporter.common.GCDData.initCmEventExportStore(GCDData.java:299)
at filenet.eventexporter.rpc.CARPCBootstrapGCD.execute(CARPCBootstrapGCD.java:39)
at filenet.eventexporter.rpc.CARPCImpl.bootstrapGCDConfiguration(CARPCImpl.java:137)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at filenet.eventexporter.rpc.CARPCImpl.invokeRPC(CARPCImpl.java:73)
at filenet.jpe.rpc.jpeior.handlers.APIHttpTunnelHandler$LocalEJBExecuteAction.run(APIHttpTunnelHandler.java:123)
at java.security.AccessController.doPrivileged(AccessController.java:362)
at javax.security.auth.Subject.doAs(Subject.java:573)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:195)
at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:152)
at sun.reflect.GeneratedMethodAccessor54.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at com.filenet.apiimpl.util.J2EEUtilWS.doAs(J2EEUtilWS.java:239)
at com.filenet.api.util.UserContext.doAs(UserContext.java:142)
at filenet.jpe.rpc.jpeior.handlers.APIHttpTunnelHandler.invokeAPIRPCs(APIHttpTunnelHandler.java:277)
at filenet.jpe.rpc.appserver.PEEngineServlet.APITunnelHandler(PEEngineServlet.java:660)
at filenet.jpe.rpc.appserver.PEEngineServlet.doPost(PEEngineServlet.java:577)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1230)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1071)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3837)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:981)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283)
at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.determineNextChannel(SSLConnectionLink.java:1049)
at com.ibm.ws.ssl.channel.impl.SSLConnectionLink$MyReadCompletedCallback.complete(SSLConnectionLink.java:643)
at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1818)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1864)
Caused by: com.filenet.api.exception.EngineRuntimeException: FNRCD0009E: DB_ERROR: The database access failed with the following error: ErrorCode 0, Message 'enlist: caught Exception' failedBatchItem=0
at com.filenet.engine.dbpersist.DBMSSQLContext.throwEngineException(DBMSSQLContext.java:396)
at com.filenet.engine.dbpersist.DBContext.throwEngineException(DBContext.java:1277)
at com.filenet.engine.dbpersist.DBStatementBase.buildSingleExecution(DBStatementBase.java:536)
at com.filenet.engine.dbpersist.DBStatementBase.execute(DBStatementBase.java:271)
at com.filenet.engine.persist.ObjectStorePersister.getDefaultSchemaName(ObjectStorePersister.java:652)
at com.filenet.engine.persist.CmDatabaseConnectionPersister.verifyProperties(CmDatabaseConnectionPersister.java:180)
... 70 more
Caused by: java.sql.SQLException: enlist: caught Exception failedBatchItem=0
at com.ibm.ws.rsadapter.AdapterUtil.toSQLException(AdapterUtil.java:1699)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.beginTransactionIfNecessary(WSJdbcConnection.java:814)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java:2831)
at com.filenet.engine.dbpersist.DBStatementBase.buildSingleExecution(DBStatementBase.java:507)
... 73 more
Caused by: javax.resource.ResourceException: enlist: caught Exception failedBatchItem=0
at com.ibm.ejs.j2c.XATransactionWrapper.enlist(XATransactionWrapper.java:832)
at com.ibm.ejs.j2c.ConnectionManager.lazyEnlist(ConnectionManager.java:2697)
at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.lazyEnlist(WSRdbManagedConnectionImpl.java:2606)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.beginTransactionIfNecessary(WSJdbcConnection.java:744)
... 75 more
Caused by: javax.transaction.SystemException: XAResource start association error:XAER_RMERR failedBatchItem=0
at com.ibm.tx.jta.impl.RegisteredResources.startRes(RegisteredResources.java:1087)
at com.ibm.ws.tx.jta.RegisteredResources.enlistResource(RegisteredResources.java:1117)
at com.ibm.ws.tx.jta.TransactionImpl.enlistResource(TransactionImpl.java:2226)
at com.ibm.tx.jta.embeddable.impl.EmbeddableTranManagerSet.enlist(EmbeddableTranManagerSet.java:157)
at com.ibm.ejs.j2c.XATransactionWrapper.enlist(XATransactionWrapper.java:733)
... 78 more
Caused by: javax.transaction.xa.XAException: com.microsoft.sqlserver.jdbc.SQLServerException: Failed to create the XA control connection. Error: "Could not find stored procedure 'master..xp_sqljdbc_xa_init_ex'." failedBatchItem=0
at com.microsoft.sqlserver.jdbc.SQLServerXAResource.DTC_XA_Interface(SQLServerXAResource.java:642)
at com.microsoft.sqlserver.jdbc.SQLServerXAResource.start(SQLServerXAResource.java:674)
at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.start(WSRdbXaResourceImpl.java:1531)
at com.ibm.ejs.j2c.XATransactionWrapper.start(XATransactionWrapper.java:1479)
at com.ibm.ws.Transaction.JTA.JTAResourceBase.start(JTAResourceBase.java:157)
at com.ibm.tx.jta.impl.RegisteredResources.startRes(RegisteredResources.java:1036)
... 82 more
}

Environment

Windows 2012 / MS SQL 2012

Diagnosing The Problem


1) Review the caupgrade_out_mmddyyyy.txt in /IBM/FileNet/ContentEngine/tools/PE folder.

2) An error message appears as shown below:

Caused by: javax.transaction.xa.XAException: com.microsoft.sqlserver.jdbc.SQLServerException: Failed to create the XA control connection. Error: "Could not find stored procedure 'master..xp_sqljdbc_xa_init_ex'." failedBatchItem=0

Resolving The Problem

To resolve the issue, the following tasks should be done on the MS SQL server:

A) Enable Microsoft SQL Server XA transactions:

  • From the Control Panel, open Administrative Tools.
  • Click the TOOL menu then open Component Services.

  • Expand Component Services.
  • Expand Computers then My Computer.
  • Expand Distributed Transaction Coordinator .
  • Select Local DTC then select its Properties.

  • Click Security Tab.
  • Select the Enable XA Transactions check box.
  • Click OK to restart the Microsoft DTC service.

  • Click OK again to close the Properties dialog box, and then close Component Services.
  • Stop and then restart the Microsoft SQL Server.
  • Complete the following steps on every Microsoft SQL Server that will contain Case Analyzer store.

B) Configure the JDBC Distributed Transaction Components:

If IBM FileNet Case Foundation is already installed, go to CF_install_root/jdbcdrivers/SQLServer/xa to obtain the files you require in the following steps:

  • Copy the sqljdbc_xa.dll file from the JDBC unarchived directory to the Binn directory (for a default SQL Server install, the location is C:/Program Files/Microsoft SQL Server/MSSQL10_50.MSSQLSERVER/MSSQL/Binn) of SQL Server computer. If you are using XA transactions with a 32-bit SQL Server, use the sqljdbc_xa.dll file in the x86 folder, even if the SQL Server is installed on a x64 processor. If you are using XA transactions with a 64-bit SQL Server on the x64 processor, use the sqljdbc_xa.dll file in the x64 folder.
  • Run the xa_install.sql database script on SQL Server. For example; from the command prompt, run sqlcmd -i xa_install.sql. This script installs the extended stored procedures that are called by sqljdbc_xa.dll. These extended stored procedures implement distributed transaction and XA support for the Microsoft SQL Server JDBC Driver. You will need to run this script as an administrator of the SQL Server instance. You can ignore errors about unable to drop procedures that don't exist.
  • Open the SQL Server Management Studio to locate the security folder under the master database. To grant permissions to a specific user to participate in distributed transactions with the JDBC driver, add the user to the SqlJDBCXAUser role in the master database (for example, for a Lombardi user add master database in User mappings and check SqlJDBCXAUser role).

C) After you configure the XA transactions and before you start the server, you must configure your TCP/IP connectivity using the below steps:

From the Start menu, click Microsoft SQl Server 2012 > Configuration Tools > SQL Server Configuration Manager.

Expand SQl Server network Configuration > Protocols for SQL2012.

  • Locate TCP/IP on the right-hand side.


  • Double click TCP/IP and enable it under the Protocol tab.

  • Click the IP Addresses tab to enable the TCP port for each configured IP address.

[{"Product":{"code":"SSTHRT","label":"IBM Case Foundation"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Case Analyzer","Platform":[{"code":"PF033","label":"Windows"}],"Version":"5.2.1","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
17 June 2018

UID

swg21902857