XaResource.prepare Method Error
When we execute the xaresource.prepare(); throws an exception of:
RuntimeException in method: public abstract void transaction.bean.TransactionManager.insert(common.valueObject.VOInsert,java.lang.String) throws java.lang.Exception,java.rmi.RemoteException:
java.lang.NullPointerException
at org.postgresql.util.Base64.encodeBytes(Base64.java:306)
at org.postgresql.xa.RecoveredXid.xidToString(RecoveredXid.java:51)
at org.postgresql.xa.PGXAConnection.rollback(PGXAConnection.java:287)
this is the code:
private boolean canBeCommited(Vector<XAResource> resources, Xid xid, int actualResource ) throws Exception
try {
System.out.println("resources.get(actualResource) -> " + resources.get(actualResource));
System.out.println("xid -> " + xid);
int ret = resources.get(actualResource).prepare(xid);
if(ret == XAResource.XA_OK)
if (actualResource==0)
return true;
else
return canBeCommited(resources,xid,actualResource-1);
else
return false;
catch (XAException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
throw e;
}
You may need to recompile your class with jar(s) from 11g.
If you have problems to make it running, take a sample component containing a serviceHandler from HowTo Components 11g and just adjust it to your needs. The link to components: http://bexhuff.com/2011/03/howto-component-samples-for-oracle-ucm-11g
Similar Messages
-
How does WLS 7 handle XAResource prepare failures..?
Hi,
I am in the process of testing the XA behaviour of JDBC drivers in WebLogic server
7.0, for the purpose of integrating our middleware agents that rely on JDBC and
XA.
For this, I have implemented a XA JDBC driver "shim", which delegates all the
calls to a third party XA driver, such as Oracle 9i, and also logs the method
calls in a file.
I have configured TWO WebLogic JDBC pools using my shim driver, one connecting
to a LOCAL oracle db (say con1), and the other to a remote Oracle db (conB).
Then a stateless session bean deployed in WLS7, executes various SQL using the
two data sources, to capture different distributed transaction scenarios.
In one scenario, I deliberately disconnect the network, JUST BEFORE the XAResource.prepare()
call corresponds to the conB, thus emulating a 2-phase commit failure. (In my
XA driver, I deliberately waits before prepare() to help diconnection process)
Then I reconnect the network, enabling the con B. Though I would expect the Transation
coordinator to call, XAResource.recover(), it looks that XAResource.commit() is
called instead, as if the prepare stage was successful..!!
[1] Have you any idea why this happens..? -i.e. commit() is called rather than
recover(). See the stack trace I attach here.
[2] Could you point me to any detailed sequence diagrams for XA/JTA prepare failures..?
I have not been able to see any so far, either in JavaSoft/JTA site, or elsewhere.
Thanks in advance,
-hari
PS: WebLogic stack trace on XAResource prepare() failure:
6600121)AbstractSessionBean (AbstractSessionBean) .setSessionContext()
(6600121)AbstractSessionBean (AbstractSessionBean) ejbCreate()
(6600121)AbstractSessionBean (AbstractSessionBean) executeSQL() sqlInfo
(6600121)AbstractSessionBean (AbstractSessionBean) begin()
(6600121)AbstractSessionBean (AbstractSessionBean) sqlInfo =SQLInfo { conId
=0, isCommit? true, SQL = SELECT name FROM dept, }
(6600121)AbstractSessionBean (AbstractSessionBean) sqlInfo =SQLInfo { conId
=1, isCommit? true, SQL = UPDATE emp set name='2_CON_TEST_NAME' WHERE id =2,
(6600121)AbstractSessionBean (AbstractSessionBean) commit()
>>>>> XAResource prepare wait =5000
>>>>> XAResource prepare wait =5000
java.sql.SQLException: Io exception: Connection reset by peer: JVM_recv in socke
t input stream read
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335)
at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:503)
at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:518)
at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedState
ment.java:210)
at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
ment.java:111)
at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
ment.java:95)
at oracle.jdbc.driver.OracleConnection.privatePrepareCall(OracleConnecti
on.java:1055)
at oracle.jdbc.driver.OracleConnection.prepareCall(OracleConnection.java
:893)
at oracle.jdbc.xa.client.OracleXAResource.prepare(OracleXAResource.java:
465)
at driver.logging.xa.LogXAResource.prepare(Unknown Source)
at weblogic.jdbc.jta.DataSource.prepare(DataSource.java:747)
at weblogic.transaction.internal.ServerResourceInfo.prepare(ServerResour
ceInfo.java:1257)
at weblogic.transaction.internal.ServerResourceInfo.prepare(ServerResour
ceInfo.java:463)
at weblogic.transaction.internal.ServerSCInfo.startPrepare(ServerSCInfo.
java:190)
at weblogic.transaction.internal.ServerTransactionImpl.localPrepare(Serv
erTransactionImpl.java:1925)
at weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(Ser
verTransactionImpl.java:1683)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Se
rverTransactionImpl.java:239)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
sactionImpl.java:208)
at weblogic.transaction.internal.TransactionManagerImpl.commit(Transacti
onManagerImpl.java:282)
at jdbctest.model.dataaccess.DataAccessBean.commit(Unknown Source)
at jdbctest.model.dataaccess.DataAccessBean.executeSQL(Unknown Source)
at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl.executeSQL(Dat
aAccessBean_xex19a_EOImpl.java:304)
at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl_WLSkel.invoke(
Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:359)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:114)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
eManager.java:762)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:308)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
java.sql.SQLException: Io exception: Connection reset by peer: socket write erro
r
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335)
at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:503)
at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:518)
at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedState
ment.java:210)
at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
ment.java:111)
at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
ment.java:95)
at oracle.jdbc.driver.OracleConnection.privatePrepareCall(OracleConnecti
on.java:1055)
at oracle.jdbc.driver.OracleConnection.prepareCall(OracleConnection.java
:893)
at oracle.jdbc.xa.client.OracleXAResource.commit(OracleXAResource.java:3
75)
at driver.logging.xa.LogXAResource.commit(Unknown Source)
at weblogic.jdbc.jta.DataSource.commit(DataSource.java:808)
at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
eInfo.java:1313)
at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
eInfo.java:512)
at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.j
ava:237)
at weblogic.transaction.internal.ServerTransactionImpl.localCommit(Serve
rTransactionImpl.java:1474)
at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit
(ServerTransactionImpl.java:2042)
at weblogic.transaction.internal.ServerTransactionImpl.access$2(ServerTr
ansactionImpl.java:2002)
at weblogic.transaction.internal.ServerTransactionImpl$2.execute(ServerT
ransactionImpl.java:2479)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
java.sql.SQLException: Closed Connection
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:285)
at oracle.jdbc.pool.OraclePooledConnection.getConnection(OraclePooledCon
nection.java:206)
at oracle.jdbc.xa.OracleXAConnection.getConnection(OracleXAConnection.ja
va:101)
at driver.logging.xa.LogXAConnection.getConnection(Unknown Source)
at weblogic.jdbc.jta.XAConnection.getConnection(XAConnection.java:341)
at weblogic.jdbc.jta.XAConnection.getAutoCommit(XAConnection.java:477)
at weblogic.jdbc.common.internal.ConnectionEnv.cleanup(ConnectionEnv.jav
a:736)
at weblogic.jdbc.common.internal.ConnectionPool.release(ConnectionPool.j
ava:174)
at weblogic.jdbc.jta.XAConnection.releaseToPool(XAConnection.java:255)
at weblogic.jdbc.jta.DataSource.getXAResource(DataSource.java:718)
at weblogic.jdbc.jta.DataSource.commit(DataSource.java:801)
at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
eInfo.java:1313)
at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
eInfo.java:512)
at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.j
ava:237)
at weblogic.transaction.internal.ServerTransactionImpl.localCommit(Serve
rTransactionImpl.java:1474)
at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit
(ServerTransactionImpl.java:2042)
at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(Serv
erTransactionImpl.java:1989)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Se
rverTransactionImpl.java:242)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
sactionImpl.java:208)
at weblogic.transaction.internal.TransactionManagerImpl.commit(Transacti
onManagerImpl.java:282)
at jdbctest.model.dataaccess.DataAccessBean.commit(Unknown Source)
at jdbctest.model.dataaccess.DataAccessBean.executeSQL(Unknown Source)
at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl.executeSQL(Dat
aAccessBean_xex19a_EOImpl.java:304)
at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl_WLSkel.invoke(
Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:359)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:114)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
eManager.java:762)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:308)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
java.sql.SQLException: Io exception: Connection reset by peer: socket write erro
r
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335)
at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:503)
at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:518)
at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedState
ment.java:210)
at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
ment.java:111)
at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
ment.java:95)
at oracle.jdbc.driver.OracleConnection.privatePrepareCall(OracleConnecti
on.java:1055)
at oracle.jdbc.driver.OracleConnection.prepareCall(OracleConnection.java
:893)
at oracle.jdbc.xa.client.OracleXAResource.commit(OracleXAResource.java:3
75)
at driver.logging.xa.LogXAResource.commit(Unknown Source)
at weblogic.jdbc.jta.DataSource.commit(DataSource.java:808)
at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
eInfo.java:1313)
at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
eInfo.java:512)
at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.j
ava:237)
at weblogic.transaction.internal.ServerTransactionImpl.localCommit(Serve
rTransactionImpl.java:1474)
at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit
(ServerTransactionImpl.java:2042)
at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(Serv
erTransactionImpl.java:1989)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Se
rverTransactionImpl.java:242)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
sactionImpl.java:208)
at weblogic.transaction.internal.TransactionManagerImpl.commit(Transacti
onManagerImpl.java:282)
at jdbctest.model.dataaccess.DataAccessBean.commit(Unknown Source)
at jdbctest.model.dataaccess.DataAccessBean.executeSQL(Unknown Source)
at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl.executeSQL(Dat
aAccessBean_xex19a_EOImpl.java:304)
at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl_WLSkel.invoke(
Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:359)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:114)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
eManager.java:762)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:308)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
java.sql.SQLException: Closed Connection
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:285)
at oracle.jdbc.pool.OraclePooledConnection.getConnection(OraclePooledCon
nection.java:206)
at oracle.jdbc.xa.OracleXAConnection.getConnection(OracleXAConnection.ja
va:101)
at driver.logging.xa.LogXAConnection.getConnection(Unknown Source)
at weblogic.jdbc.jta.XAConnection.getConnection(XAConnection.java:341)
at weblogic.jdbc.jta.XAConnection.getAutoCommit(XAConnection.java:477)
at weblogic.jdbc.common.internal.ConnectionEnv.cleanup(ConnectionEnv.jav
a:736)
at weblogic.jdbc.common.internal.ConnectionPool.release(ConnectionPool.j
ava:174)
at weblogic.jdbc.jta.XAConnection.releaseToPool(XAConnection.java:255)
at weblogic.jdbc.jta.DataSource.getXAResource(DataSource.java:718)
at weblogic.jdbc.jta.DataSource.commit(DataSource.java:801)
at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
eInfo.java:1313)
at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
eInfo.java:512)
at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.j
ava:237)
at weblogic.transaction.internal.ServerTransactionImpl.localCommit(Serve
rTransactionImpl.java:1474)
at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit
(ServerTransactionImpl.java:2042)
at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(Serv
erTransactionImpl.java:1989)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Se
rverTransactionImpl.java:242)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
sactionImpl.java:208)
at weblogic.transaction.internal.TransactionManagerImpl.commit(Transacti
onManagerImpl.java:282)
at jdbctest.model.dataaccess.DataAccessBean.commit(Unknown Source)
at jdbctest.model.dataaccess.DataAccessBean.executeSQL(Unknown Source)
at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl.executeSQL(Dat
aAccessBean_xex19a_EOImpl.java:304)
at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl_WLSkel.invoke(
Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:359)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:114)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
eManager.java:762)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:308)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
java.sql.SQLException: Io exception: Connection reset by peer: socket write erro
r
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335)
at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:503)
at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:518)
at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedState
ment.java:210)
at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
ment.java:111)
at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
ment.java:95)
at oracle.jdbc.driver.OracleConnection.privatePrepareCall(OracleConnecti
on.java:1055)
at oracle.jdbc.driver.OracleConnection.prepareCall(OracleConnection.java
:893)
at oracle.jdbc.xa.client.OracleXAResource.commit(OracleXAResource.java:3
75)
at driver.logging.xa.LogXAResource.commit(Unknown Source)
at weblogic.jdbc.jta.DataSource.commit(DataSource.java:808)
at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
eInfo.java:1313)
at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
eInfo.java:512)
at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.j
ava:237)
at weblogic.transaction.internal.ServerTransactionImpl.localCommit(Serve
rTransactionImpl.java:1474)
at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit
(ServerTransactionImpl.java:2042)
at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(Serv
erTransactionImpl.java:1989)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Se
rverTransactionImpl.java:242)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
sactionImpl.java:208)
at weblogic.transaction.internal.TransactionManagerImpl.commit(Transacti
onManagerImpl.java:282)
at jdbctest.model.dataaccess.DataAccessBean.commit(Unknown Source)
at jdbctest.model.dataaccess.DataAccessBean.executeSQL(Unknown Source)
at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl.executeSQL(Dat
aAccessBean_xex19a_EOImpl.java:304)
at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl_WLSkel.invoke(
Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:359)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
ef.java:114)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
eManager.java:762)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
a:308)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
java.sql.SQLException: Closed Connection
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:285)
at oracle.jdbc.pool.OraclePooledConnection.getConnection(OraclePooledCon
nection.java:206)
at oracle.jdbc.xa.OracleXAConnection.getConnection(OracleXAConnection.ja
va:101)
at driver.logging.xa.LogXAConnection.getConnection(Unknown Source)
at weblogic.jdbc.jta.XAConnection.getConnection(XAConnection.java:341)
at weblogic.jdbc.jta.XAConnection.getAutoCommit(XAConnection.java:477)
at weblogic.jdbc.common.internal.ConnectionEnv.cleanup(ConnectionEnv.jav
a:736)
at weblogic.jdbc.common.internal.ConnectionPool.release(ConnectionPool.j
ava:174)
at weblogic.jdbc.jta.XAConnection.releaseToPool(XAConnection.java:255)
at weblogic.jdbc.jta.DataSource.getXAResource(DataSource.java:718)
at weblogic.jdbc.jta.DataSource.commit(DataSource.java:801)
at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
eInfo.java:1313)
at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
eInfo.java:512)
at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.j
ava:237)
at weblogic.transaction.internal.ServerTransactionImpl.localCommit(Serve
rTransactionImpl.java:1474)
at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit
(ServerTransactionImpl.java:2042)
at weblogic.transaction.internal.ServerTransactionImpl.access$2(ServerTr
ansactionImpl.java:2002)
at weblogic.transaction.internal.ServerTransactionImpl$2.execute(ServerT
ransactionImpl.java:2479)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
java.sql.SQLException: Io exception: Connection reset by peer: socket write erro
r
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335)
at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:503)
at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:518)
at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedState
ment.java:210)
at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
ment.java:111)
at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
ment.java:95)
at oracle.jdbc.driver.OracleConnection.privatePrepareCall(OracleConnecti
on.java:1055)
at oracle.jdbc.driver.OracleConnection.prepareCall(OracleConnection.java
:893)
at oracle.jdbc.xa.client.OracleXAResource.commit(OracleXAResource.java:3
75)
at driver.logging.xa.LogXAResource.commit(Unknown Source)
at weblogic.jdbc.jta.DataSource.commit(DataSource.java:808)
at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
eInfo.java:1313)
at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
eInfo.java:512)
at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.j
ava:237)
at weblogic.transaction.internal.ServerTransactionImpl.localCommit(Serve
rTransactionImpl.java:1474)
at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit
(ServerTransactionImpl.java:2042)
at weblogic.transaction.internal.ServerTransactionImpl.access$2(ServerTr
ansactionImpl.java:2002)
at weblogic.transaction.internal.ServerTransactionImpl$2.execute(ServerT
ransactionImpl.java:2479)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
It sounds like a driver problem. Have you checked with Oracle about
this behavior?
Alex
Hari Rajapakshe wrote:
> Hi Alex,
> Thanks for the reply. I AM SURE that XAResource being prepared does NOT throw
> an exception for the connection failure.
>
> In fact, I have simplified the test scenario, by removing WLS from the picture,
> and manually calling XA methods in a two-tier JDBC client, which;
>
> [1] Instantiate two XA data sources, one on a local oracle db (A) and the other
> a remote one (b)
> [2] Get two XA connections (XAC1 and XAc2) from the data sources,
> [3] Create two XA resource (XARA and XARB) on connections, and starting them.
> [4] Create two jdbc connections and then executing UPDATING SQL on them.
> [5] calling end() on XA resources.
> [6] Calling prepare() on XARA (on the local db)
>
> [7] Disconecting the LAN connection.
> [8] Calling prepare() on XARB (on the remote db)
>
> At the step [8], I excpet an XAException, indicating the network failure. But
> Oracle driver returns with 0, merely DUMPING THE STACK TRACE on std error (ie.
> cmd line)...!!
>
> This is weird.. Or am I missing something here..?
>
> My remote db is Oracle 9i, and the local 8i (8.1.7), and I have tested the above
> in both JDBC think and OCI drivers with the same results.
>
> Any ideas..?
>
> thanks
> -hari
>
>
> Alex <[email protected]> wrote:
>
>>Hi Hari,
>>
>>In the scenario that you describe the prepare failure should cause the
>>
>>transaction to be rolled back. Are you sure that the commit operation
>>
>>that you are seeing is for the same xid as the one that failed to prepare?
>>
>>Regarding recovery, the transaction manager does not need to call
>>recover on the reconnected Oracle resource because the TM knows the
>>state of any pending transactions in the resource that it is
>>coordinating. The XAResource.recover method is only required in the
>>
>>event that the transaction manager fails. After restart, the
>>transaction manager needs to determine if there are pending (prepared)
>>
>>transactions in the resources that it has previously coordinated that
>>
>>need to be resolved.
>>
>>Alex
>>
>>
>>Hari Rajapakshe wrote:
>>
>>
>>>Hi,
>>>
>>>I am in the process of testing the XA behaviour of JDBC drivers in
>>>
>>WebLogic server
>>
>>>7.0, for the purpose of integrating our middleware agents that rely
>>>
>>on JDBC and
>>
>>>XA.
>>>
>>>For this, I have implemented a XA JDBC driver "shim", which delegates
>>>
>>all the
>>
>>>calls to a third party XA driver, such as Oracle 9i, and also logs
>>>
>>the method
>>
>>>calls in a file.
>>>
>>>I have configured TWO WebLogic JDBC pools using my shim driver, one
>>>
>>connecting
>>
>>>to a LOCAL oracle db (say con1), and the other to a remote Oracle db
>>>
>>(conB).
>>
>>>Then a stateless session bean deployed in WLS7, executes various SQL
>>>
>>using the
>>
>>>two data sources, to capture different distributed transaction scenarios.
>>>
>>>In one scenario, I deliberately disconnect the network, JUST BEFORE
>>>
>>the XAResource.prepare()
>>
>>>call corresponds to the conB, thus emulating a 2-phase commit failure.
>>>
>>(In my
>>
>>>XA driver, I deliberately waits before prepare() to help diconnection
>>>
>>process)
>>
>>>Then I reconnect the network, enabling the con B. Though I would expect
>>>
>>the Transation
>>
>>>coordinator to call, XAResource.recover(), it looks that XAResource.commit()
>>>
>>is
>>
>>>called instead, as if the prepare stage was successful..!!
>>>
>>>[1] Have you any idea why this happens..? -i.e. commit() is called
>>>
>>rather than
>>
>>>recover(). See the stack trace I attach here.
>>>
>>>[2] Could you point me to any detailed sequence diagrams for XA/JTA
>>>
>>prepare failures..?
>>
>>>I have not been able to see any so far, either in JavaSoft/JTA site,
>>>
>>or elsewhere.
>>
>>>Thanks in advance,
>>>-hari
>>>
>>>PS: WebLogic stack trace on XAResource prepare() failure:
>>>
>>>
>>>
>>>
>>>6600121)AbstractSessionBean (AbstractSessionBean) .setSessionContext()
>>>(6600121)AbstractSessionBean (AbstractSessionBean) ejbCreate()
>>>(6600121)AbstractSessionBean (AbstractSessionBean) executeSQL() sqlInfo
>>>(6600121)AbstractSessionBean (AbstractSessionBean) begin()
>>>(6600121)AbstractSessionBean (AbstractSessionBean) sqlInfo =SQLInfo
>>>
>>{ conId
>>
>>> =0, isCommit? true, SQL = SELECT name FROM dept, }
>>>(6600121)AbstractSessionBean (AbstractSessionBean) sqlInfo =SQLInfo
>>>
>>{ conId
>>
>>> =1, isCommit? true, SQL = UPDATE emp set name='2_CON_TEST_NAME' WHERE
>>>
>>id =2,
>>
>>> }
>>>(6600121)AbstractSessionBean (AbstractSessionBean) commit()
>>>
>>>
>>>>>>>>XAResource prepare wait =5000
>>>>>>>>XAResource prepare wait =5000
>>>>>>>>
>>>>>>>>
>>>java.sql.SQLException: Io exception: Connection reset by peer: JVM_recv
>>>
>>in socke
>>
>>>t input stream read
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335)
>>> at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:503)
>>> at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:518)
>>> at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedState
>>>ment.java:210)
>>> at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
>>>ment.java:111)
>>> at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
>>>ment.java:95)
>>> at oracle.jdbc.driver.OracleConnection.privatePrepareCall(OracleConnecti
>>>on.java:1055)
>>> at oracle.jdbc.driver.OracleConnection.prepareCall(OracleConnection.java
>>>:893)
>>> at oracle.jdbc.xa.client.OracleXAResource.prepare(OracleXAResource.java:
>>>465)
>>> at driver.logging.xa.LogXAResource.prepare(Unknown Source)
>>> at weblogic.jdbc.jta.DataSource.prepare(DataSource.java:747)
>>> at weblogic.transaction.internal.ServerResourceInfo.prepare(ServerResour
>>>ceInfo.java:1257)
>>> at weblogic.transaction.internal.ServerResourceInfo.prepare(ServerResour
>>>ceInfo.java:463)
>>> at weblogic.transaction.internal.ServerSCInfo.startPrepare(ServerSCInfo.
>>>java:190)
>>> at weblogic.transaction.internal.ServerTransactionImpl.localPrepare(Serv
>>>erTransactionImpl.java:1925)
>>> at weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(Ser
>>>verTransactionImpl.java:1683)
>>> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Se
>>>rverTransactionImpl.java:239)
>>> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
>>>sactionImpl.java:208)
>>> at weblogic.transaction.internal.TransactionManagerImpl.commit(Transacti
>>>onManagerImpl.java:282)
>>> at jdbctest.model.dataaccess.DataAccessBean.commit(Unknown
>>>
>>Source)
>>
>>> at jdbctest.model.dataaccess.DataAccessBean.executeSQL(Unknown
>>>
>>Source)
>>
>>> at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl.executeSQL(Dat
>>>aAccessBean_xex19a_EOImpl.java:304)
>>> at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl_WLSkel.invoke(
>>>Unknown Source)
>>> at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:359)
>>> at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
>>>ef.java:114)
>>> at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
>>> at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
>>>eManager.java:762)
>>> at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
>>>a:308)
>>> at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
>>>java:30)
>>> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
>>> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
>>>java.sql.SQLException: Io exception: Connection reset by peer: socket
>>>
>>write erro
>>
>>>r
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335)
>>> at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:503)
>>> at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:518)
>>> at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedState
>>>ment.java:210)
>>> at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
>>>ment.java:111)
>>> at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
>>>ment.java:95)
>>> at oracle.jdbc.driver.OracleConnection.privatePrepareCall(OracleConnecti
>>>on.java:1055)
>>> at oracle.jdbc.driver.OracleConnection.prepareCall(OracleConnection.java
>>>:893)
>>> at oracle.jdbc.xa.client.OracleXAResource.commit(OracleXAResource.java:3
>>>75)
>>> at driver.logging.xa.LogXAResource.commit(Unknown Source)
>>> at weblogic.jdbc.jta.DataSource.commit(DataSource.java:808)
>>> at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
>>>eInfo.java:1313)
>>> at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
>>>eInfo.java:512)
>>> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.j
>>>ava:237)
>>> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(Serve
>>>rTransactionImpl.java:1474)
>>> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit
>>>(ServerTransactionImpl.java:2042)
>>> at weblogic.transaction.internal.ServerTransactionImpl.access$2(ServerTr
>>>ansactionImpl.java:2002)
>>> at weblogic.transaction.internal.ServerTransactionImpl$2.execute(ServerT
>>>ransactionImpl.java:2479)
>>> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
>>> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
>>>java.sql.SQLException: Closed Connection
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:285)
>>> at oracle.jdbc.pool.OraclePooledConnection.getConnection(OraclePooledCon
>>>nection.java:206)
>>> at oracle.jdbc.xa.OracleXAConnection.getConnection(OracleXAConnection.ja
>>>va:101)
>>> at driver.logging.xa.LogXAConnection.getConnection(Unknown
>>>
>>Source)
>>
>>> at weblogic.jdbc.jta.XAConnection.getConnection(XAConnection.java:341)
>>> at weblogic.jdbc.jta.XAConnection.getAutoCommit(XAConnection.java:477)
>>> at weblogic.jdbc.common.internal.ConnectionEnv.cleanup(ConnectionEnv.jav
>>>a:736)
>>> at weblogic.jdbc.common.internal.ConnectionPool.release(ConnectionPool.j
>>>ava:174)
>>> at weblogic.jdbc.jta.XAConnection.releaseToPool(XAConnection.java:255)
>>> at weblogic.jdbc.jta.DataSource.getXAResource(DataSource.java:718)
>>> at weblogic.jdbc.jta.DataSource.commit(DataSource.java:801)
>>> at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
>>>eInfo.java:1313)
>>> at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
>>>eInfo.java:512)
>>> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.j
>>>ava:237)
>>> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(Serve
>>>rTransactionImpl.java:1474)
>>> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit
>>>(ServerTransactionImpl.java:2042)
>>> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(Serv
>>>erTransactionImpl.java:1989)
>>> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Se
>>>rverTransactionImpl.java:242)
>>> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
>>>sactionImpl.java:208)
>>> at weblogic.transaction.internal.TransactionManagerImpl.commit(Transacti
>>>onManagerImpl.java:282)
>>> at jdbctest.model.dataaccess.DataAccessBean.commit(Unknown
>>>
>>Source)
>>
>>> at jdbctest.model.dataaccess.DataAccessBean.executeSQL(Unknown
>>>
>>Source)
>>
>>> at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl.executeSQL(Dat
>>>aAccessBean_xex19a_EOImpl.java:304)
>>> at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl_WLSkel.invoke(
>>>Unknown Source)
>>> at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:359)
>>> at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
>>>ef.java:114)
>>> at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
>>> at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
>>>eManager.java:762)
>>> at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
>>>a:308)
>>> at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
>>>java:30)
>>> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
>>> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
>>>java.sql.SQLException: Io exception: Connection reset by peer: socket
>>>
>>write erro
>>
>>>r
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335)
>>> at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:503)
>>> at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:518)
>>> at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedState
>>>ment.java:210)
>>> at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
>>>ment.java:111)
>>> at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
>>>ment.java:95)
>>> at oracle.jdbc.driver.OracleConnection.privatePrepareCall(OracleConnecti
>>>on.java:1055)
>>> at oracle.jdbc.driver.OracleConnection.prepareCall(OracleConnection.java
>>>:893)
>>> at oracle.jdbc.xa.client.OracleXAResource.commit(OracleXAResource.java:3
>>>75)
>>> at driver.logging.xa.LogXAResource.commit(Unknown Source)
>>> at weblogic.jdbc.jta.DataSource.commit(DataSource.java:808)
>>> at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
>>>eInfo.java:1313)
>>> at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
>>>eInfo.java:512)
>>> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.j
>>>ava:237)
>>> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(Serve
>>>rTransactionImpl.java:1474)
>>> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit
>>>(ServerTransactionImpl.java:2042)
>>> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(Serv
>>>erTransactionImpl.java:1989)
>>> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Se
>>>rverTransactionImpl.java:242)
>>> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
>>>sactionImpl.java:208)
>>> at weblogic.transaction.internal.TransactionManagerImpl.commit(Transacti
>>>onManagerImpl.java:282)
>>> at jdbctest.model.dataaccess.DataAccessBean.commit(Unknown
>>>
>>Source)
>>
>>> at jdbctest.model.dataaccess.DataAccessBean.executeSQL(Unknown
>>>
>>Source)
>>
>>> at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl.executeSQL(Dat
>>>aAccessBean_xex19a_EOImpl.java:304)
>>> at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl_WLSkel.invoke(
>>>Unknown Source)
>>> at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:359)
>>> at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
>>>ef.java:114)
>>> at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
>>> at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
>>>eManager.java:762)
>>> at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
>>>a:308)
>>> at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
>>>java:30)
>>> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
>>> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
>>>java.sql.SQLException: Closed Connection
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:285)
>>> at oracle.jdbc.pool.OraclePooledConnection.getConnection(OraclePooledCon
>>>nection.java:206)
>>> at oracle.jdbc.xa.OracleXAConnection.getConnection(OracleXAConnection.ja
>>>va:101)
>>> at driver.logging.xa.LogXAConnection.getConnection(Unknown
>>>
>>Source)
>>
>>> at weblogic.jdbc.jta.XAConnection.getConnection(XAConnection.java:341)
>>> at weblogic.jdbc.jta.XAConnection.getAutoCommit(XAConnection.java:477)
>>> at weblogic.jdbc.common.internal.ConnectionEnv.cleanup(ConnectionEnv.jav
>>>a:736)
>>> at weblogic.jdbc.common.internal.ConnectionPool.release(ConnectionPool.j
>>>ava:174)
>>> at weblogic.jdbc.jta.XAConnection.releaseToPool(XAConnection.java:255)
>>> at weblogic.jdbc.jta.DataSource.getXAResource(DataSource.java:718)
>>> at weblogic.jdbc.jta.DataSource.commit(DataSource.java:801)
>>> at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
>>>eInfo.java:1313)
>>> at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
>>>eInfo.java:512)
>>> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.j
>>>ava:237)
>>> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(Serve
>>>rTransactionImpl.java:1474)
>>> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit
>>>(ServerTransactionImpl.java:2042)
>>> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(Serv
>>>erTransactionImpl.java:1989)
>>> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Se
>>>rverTransactionImpl.java:242)
>>> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
>>>sactionImpl.java:208)
>>> at weblogic.transaction.internal.TransactionManagerImpl.commit(Transacti
>>>onManagerImpl.java:282)
>>> at jdbctest.model.dataaccess.DataAccessBean.commit(Unknown
>>>
>>Source)
>>
>>> at jdbctest.model.dataaccess.DataAccessBean.executeSQL(Unknown
>>>
>>Source)
>>
>>> at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl.executeSQL(Dat
>>>aAccessBean_xex19a_EOImpl.java:304)
>>> at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl_WLSkel.invoke(
>>>Unknown Source)
>>> at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:359)
>>> at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
>>>ef.java:114)
>>> at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
>>> at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
>>>eManager.java:762)
>>> at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
>>>a:308)
>>> at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
>>>java:30)
>>> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
>>> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
>>>java.sql.SQLException: Io exception: Connection reset by peer: socket
>>>
>>write erro
>>
>>>r
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335)
>>> at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:503)
>>> at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:518)
>>> at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedState
>>>ment.java:210)
>>> at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
>>>ment.java:111)
>>> at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
>>>ment.java:95)
>>> at oracle.jdbc.driver.OracleConnection.privatePrepareCall(OracleConnecti
>>>on.java:1055)
>>> at oracle.jdbc.driver.OracleConnection.prepareCall(OracleConnection.java
>>>:893)
>>> at oracle.jdbc.xa.client.OracleXAResource.commit(OracleXAResource.java:3
>>>75)
>>> at driver.logging.xa.LogXAResource.commit(Unknown Source)
>>> at weblogic.jdbc.jta.DataSource.commit(DataSource.java:808)
>>> at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
>>>eInfo.java:1313)
>>> at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
>>>eInfo.java:512)
>>> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.j
>>>ava:237)
>>> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(Serve
>>>rTransactionImpl.java:1474)
>>> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit
>>>(ServerTransactionImpl.java:2042)
>>> at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(Serv
>>>erTransactionImpl.java:1989)
>>> at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Se
>>>rverTransactionImpl.java:242)
>>> at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
>>>sactionImpl.java:208)
>>> at weblogic.transaction.internal.TransactionManagerImpl.commit(Transacti
>>>onManagerImpl.java:282)
>>> at jdbctest.model.dataaccess.DataAccessBean.commit(Unknown
>>>
>>Source)
>>
>>> at jdbctest.model.dataaccess.DataAccessBean.executeSQL(Unknown
>>>
>>Source)
>>
>>> at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl.executeSQL(Dat
>>>aAccessBean_xex19a_EOImpl.java:304)
>>> at jdbctest.model.dataaccess.DataAccessBean_xex19a_EOImpl_WLSkel.invoke(
>>>Unknown Source)
>>> at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:359)
>>> at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerR
>>>ef.java:114)
>>> at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
>>> at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
>>>eManager.java:762)
>>> at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.jav
>>>a:308)
>>> at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
>>>java:30)
>>> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
>>> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
>>>java.sql.SQLException: Closed Connection
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:285)
>>> at oracle.jdbc.pool.OraclePooledConnection.getConnection(OraclePooledCon
>>>nection.java:206)
>>> at oracle.jdbc.xa.OracleXAConnection.getConnection(OracleXAConnection.ja
>>>va:101)
>>> at driver.logging.xa.LogXAConnection.getConnection(Unknown
>>>
>>Source)
>>
>>> at weblogic.jdbc.jta.XAConnection.getConnection(XAConnection.java:341)
>>> at weblogic.jdbc.jta.XAConnection.getAutoCommit(XAConnection.java:477)
>>> at weblogic.jdbc.common.internal.ConnectionEnv.cleanup(ConnectionEnv.jav
>>>a:736)
>>> at weblogic.jdbc.common.internal.ConnectionPool.release(ConnectionPool.j
>>>ava:174)
>>> at weblogic.jdbc.jta.XAConnection.releaseToPool(XAConnection.java:255)
>>> at weblogic.jdbc.jta.DataSource.getXAResource(DataSource.java:718)
>>> at weblogic.jdbc.jta.DataSource.commit(DataSource.java:801)
>>> at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
>>>eInfo.java:1313)
>>> at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
>>>eInfo.java:512)
>>> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.j
>>>ava:237)
>>> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(Serve
>>>rTransactionImpl.java:1474)
>>> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit
>>>(ServerTransactionImpl.java:2042)
>>> at weblogic.transaction.internal.ServerTransactionImpl.access$2(ServerTr
>>>ansactionImpl.java:2002)
>>> at weblogic.transaction.internal.ServerTransactionImpl$2.execute(ServerT
>>>ransactionImpl.java:2479)
>>> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
>>> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
>>>java.sql.SQLException: Io exception: Connection reset by peer: socket
>>>
>>write erro
>>
>>>r
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222)
>>> at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335)
>>> at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:503)
>>> at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:518)
>>> at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedState
>>>ment.java:210)
>>> at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
>>>ment.java:111)
>>> at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableState
>>>ment.java:95)
>>> at oracle.jdbc.driver.OracleConnection.privatePrepareCall(OracleConnecti
>>>on.java:1055)
>>> at oracle.jdbc.driver.OracleConnection.prepareCall(OracleConnection.java
>>>:893)
>>> at oracle.jdbc.xa.client.OracleXAResource.commit(OracleXAResource.java:3
>>>75)
>>> at driver.logging.xa.LogXAResource.commit(Unknown Source)
>>> at weblogic.jdbc.jta.DataSource.commit(DataSource.java:808)
>>> at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
>>>eInfo.java:1313)
>>> at weblogic.transaction.internal.ServerResourceInfo.commit(ServerResourc
>>>eInfo.java:512)
>>> at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.j
>>>ava:237)
>>> at weblogic.transaction.internal.ServerTransactionImpl.localCommit(Serve
>>>rTransactionImpl.java:1474)
>>> at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit
>>>(ServerTransactionImpl.java:2042)
>>> at weblogic.transaction.internal.ServerTransactionImpl.access$2(ServerTr
>>>ansactionImpl.java:2002)
>>> at weblogic.transaction.internal.ServerTransactionImpl$2.execute(ServerT
>>>ransactionImpl.java:2479)
>>> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
>>> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
>>>
>>>
>>>
>>>
>>>
>
-
Overriding Spark DataGrid item renderer's prepare method - renderer's child is initially null
I am currently using the 4.12.0 SDK. I have a Spark DataGrid setup that makes use of an externally-defined itemRenderer:
<s:DataGrid id="dgEquipment"
width="100%" height="100%"
doubleClickEnabled="true"
creationComplete="init()" doubleClick="popTab(event)">
<s:columns>
<s:ArrayList>
<s:GridColumn itemRenderer="renderers.equipment.IconRenderer"
dataField="EXISTING"
width="22"/>
The data provider is set programmatically after a remote call has returned a result.
I have the renderer setup as follows:
<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
dataChange="init()" remove="dispose()">
<s:layout>
<s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.controls.Menu;
import mx.events.MenuEvent;
import spark.components.DataGrid;
[Bindable]
[Embed(source="../../../assets/images/Icon 1.png")]
private var ico1:Class;
[Bindable]
[Embed(source="../../../assets/images/Icon 2.png")]
private var ico2:Class;
[Bindable]
[Embed(source="../../../assets/images/Icon 3.png")]
private var ico3:Class;
private var isExisting:Boolean;
private var popUp:Menu;
private function init():void
if (data)
isExisting = data.EXISTING == 1;
private function dispose():void
if (popUp)
popUp.removeEventListener(MenuEvent.ITEM_CLICK, popUp_click);
popUp = null;
if (imgActions)
imgActions.removeEventListener(MouseEvent.CLICK, image_click);
imgActions = null;
override public function prepare(hasBeenRecycled:Boolean):void
if (data)
if ((data.TYPE == "A" || data.TYPE == "B") && !data.X && !data.Y)
disableLink();
imgActions.source = ico3;
imgActions.toolTip = "Blah blah.";
else if (data.TYPE == "C" || data.TYPE == "D")
disableLink();
else if (isExisting)
imgActions.source = ico1; //****************************** imgActions.toolTip = "More blah blah.";
imgActions.addEventListener(MouseEvent.CLICK, image_click);
else
imgActions.source = ico2;
imgActions.addEventListener(MouseEvent.CLICK, image_click);
imgActions.toolTip = "Even more blah blah.";
initPopUp();
private function initPopUp():void
private function popUp_click(event:MenuEvent):void
private function image_click(event:MouseEvent):void
private function disableLink():void
]]>
</fx:Script>
<s:Image id="imgActions"
height="18" width="18"/>
</s:GridItemRenderer>
When the code reaches the line where I have added a comment full of asterisks, I get the following error:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at renderers.equipment::IconRenderer/prepare()[C:\…\renderers\equipment\IconRenderer.mxml:81 ]
at spark.components.gridClasses::GridViewLayout/initializeItemRenderer()[/Users/justinmclean /Documents/ApacheFlex4.12.0/frameworks/projects/spark/src/spark/components/gridClasses/Gri dViewLayout.as:1808]
at spark.components.gridClasses::GridViewLayout/createTypicalItemRenderer()[/Users/justinmcl ean/Documents/ApacheFlex4.12.0/frameworks/projects/spark/src/spark/components/gridClasses/ GridViewLayout.as:1243]
at spark.components.gridClasses::GridViewLayout/updateTypicalCellSizes()[/Users/justinmclean /Documents/ApacheFlex4.12.0/frameworks/projects/spark/src/spark/components/gridClasses/Gri dViewLayout.as:1374]
at spark.components.gridClasses::GridViewLayout/measure()[/Users/justinmclean/Documents/Apac heFlex4.12.0/frameworks/projects/spark/src/spark/components/gridClasses/GridViewLayout.as: 875]
at spark.components.supportClasses::GroupBase/measure()[/Users/justinmclean/Documents/Apache Flex4.12.0/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as:1156 ]
at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::measureSizes()[/Users/justinmclean/Documents/ApacheFlex4.12.0/frameworks/projects/framework/src/mx/cor e/UIComponent.as:9038]
at mx.core::UIComponent/validateSize()[/Users/justinmclean/Documents/ApacheFlex4.12.0/framew orks/projects/framework/src/mx/core/UIComponent.as:8962]
at spark.components::Group/validateSize()[/Users/justinmclean/Documents/ApacheFlex4.12.0/fra meworks/projects/spark/src/spark/components/Group.as:1074]
at mx.managers::LayoutManager/validateSize()[/Users/justinmclean/Documents/ApacheFlex4.12.0/ frameworks/projects/framework/src/mx/managers/LayoutManager.as:673]
at mx.managers::LayoutManager/doPhasedInstantiation()[/Users/justinmclean/Documents/ApacheFl ex4.12.0/frameworks/projects/framework/src/mx/managers/LayoutManager.as:824]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[/Users/justinmclean/Documents/ ApacheFlex4.12.0/frameworks/projects/framework/src/mx/managers/LayoutManager.as:1188]
Running the debugger shows that this occurs with the first item in the data provider. If I alter the prepare method to check for the existence of imgActions before doing anything, everything works fine after the first item. So I'll have one row in the DataGrid with a missing icon, and all the rest will have icons.
So the question is, is it normal for prepare to run before any children of the item renderer are created? If so, how should I handle this?
Many thanks in advance.A little more info. I added some event handlers to the renderer and the image (for events that I thought would be relevant), and here is the order of events based on trace statements within the handlers:
griditemrenderer1_addedHandler
griditemrenderer1_addedToStageHandler
griditemrenderer1_preinitializeHandler
imgActions_addedHandler
griditemrenderer1_addedHandler
imgActions_addedToStageHandler
imgActions_preinitializeHandler
imgActions_addedHandler
griditemrenderer1_addedHandler
imgActions_initializeHandler
griditemrenderer1_elementAddHandler
imgActions_addHandler
griditemrenderer1_initializeHandler
griditemrenderer1_addHandler
prepare called
imgActions_resizeHandler
griditemrenderer1_resizeHandler
imgActions_creationCompleteHandler
imgActions_updateCompleteHandler
griditemrenderer1_creationCompleteHandler
griditemrenderer1_updateCompleteHandler
griditemrenderer1_removeHandler
griditemrenderer1_addedHandler
griditemrenderer1_addedToStageHandler
imgActions_addedToStageHandler
griditemrenderer1_addHandler
griditemrenderer1_dataChangeHandlerTypeError: Error #1009: Cannot access a property or method of a null object reference.
prepare called
at renderers.equipment::IconRenderer/prepare()[C:\…\renderers\equipment\IconRenderer.mxml:91 ]
imgActions_renderHandler
griditemrenderer1_renderHandler -
External task - prepare method - decode-encode
In the prepare method, I write code refer to thread:
How to invoke a java application in the middle of the process
Using Papi to operate with process
How to invoke a java application in the middle of the process
If the error is caused by decoding and encodeing the URL, please tell me how to fix this problem.
Thanks a lot.
The code snippet as follows
-------------------code-----------------------------------------------
package getinstance;
import fuego.lang.DynamicObject;
import fuego.papi.Arguments;
import fuego.papi.CommunicationException;
import fuego.papi.InstanceInfo;
import fuego.papi.ProcessService;
import fuego.papi.ProcessServiceSession;
import fuego.papi.OperationException;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
public class prepare {
public prepare() {
public static void main(String[] args) {
prepare prepare = new prepare();
Properties configuration = new Properties();
configuration.setProperty(ProcessService.DIRECTORY_ID, "default");
configuration.setProperty(ProcessService.DIRECTORY_PROPERTIES_FILE, "D:\\BPM_HOME_standalone\\webapps\\papiws\\WEB-INF\\directory.xml");
configuration.setProperty(ProcessService.WORKING_FOLDER, "/tmp");
System.out.println("1111111111111");
Arguments argumentsResult = Arguments.create();
String taskIn = "0";
//String activity = "/InvokeJavaProcess#Default-1.0/InteractiveJava"; //both are fine
String activity = "InteractiveJava"; //both are fine
String instanceId = "/InvokeJavaProcess#Default-1.0/203/0";
try {
ProcessService processService = ProcessService.create(configuration);
ProcessServiceSession session = processService.createSession("jcooper", "welcome1", "host");
System.out.println("33333 instanceID="+instanceId);
argumentsResult = session.activityPrepare(activity, instanceId, Arguments.create()); // error starts from here
System.out.println("444444444");
DynamicObject obj = argumentsResult.getDynamicObject();
Map fieldMaps = obj.asFieldsMap();
for (Iterator<String> iterator = fieldMaps.keySet().iterator(); iterator.hasNext();) {
String key = iterator.next();
System.out.println("key : "+ key + "value" +obj.getField(key));
DynamicObject obj2 = argumentsResult.getDynamicObject();
Map fieldMaps2 = obj2.asFieldsMap();
for (Iterator<String> it = fieldMaps2.keySet().iterator(); it.hasNext();) {
System.out.println("key : "+ key + " value : "+ obj2.getField(key));
session.close();
} catch (OperationException e) {
e.printStackTrace();
But I get errors like follow:
-------------------error---------------------------------------
E:\Jdeveloper10131_20090318\jdk\bin\javaw.exe -client -classpath E:\Jdeveloper10131_20090318\jdev\mywork\Java_be_invoked\getInstance\classes;D:\BPM_HOME_standalone\client\papi\lib\fuegopapi-client.jar getinstance.prepare
1111111111111
Creating connector [fuego:SQL]
Creating ProcessService with id 'oracle/2009-03-31 18:08:47+08:00'.
Local folder /tmp\system\Schema3387192-1796619082\catalogs found.
Loading catalogs from local folder: /tmp\system\Schema3387192-1796619082\catalogs
1 jars found locally.
Local jar '126' succesfully loaded.
[CatalogMgrCache] =======================
Registering CatalogMgr [oracle/2009-03-31 18:08:47+08:00] ...CatalogManagerCache 14949315:
Managers:
Counters:
[CatalogMgrCache] =======================
CatalogMgr [oracle/2009-03-31 18:08:47+08:00] REGISTERED!CatalogManagerCache 14949315:
Managers:
{oracle/2009-03-31 18:08:47+08:00=fuego.util.LocalCatalogManager@1dacccc}
Counters:
ProcessService 'oracle/2009-03-31 18:08:47+08:00' created successfully.
33333 instanceID=/InvokeJavaProcess#Default-1.0/203/0
Unreachable Engine Tolerance (seconds):
by default: 0
to be used: 0
This papi client will not cache exceptions which imply that an engine could not be reached.
Adding local catalog for project: 124
[CatalogLoaderMgrCache] =======================
CatalogClassLoader[oracle/2009-03-31 18:08:47+08:00-124] added to cache
Catalog ClassLoader MAP:
{oracle/2009-03-31 18:08:47+08:00-124=CatalogClassLoader(FuegoObjectCatalog(catalogIn: 124, directoryId: oracle/2009-03-31 18:08:47+08:00))}
Catalog Manager Cache:
CatalogManagerCache 14949315:
Managers:
{oracle/2009-03-31 18:08:47+08:00=fuego.util.LocalCatalogManager@1dacccc}
Counters:
{oracle/2009-03-31 18:08:47+08:00=1}
fuego.papi.exception.TaskFailedException: Task '0' in activity '/InvokeJavaProcess#Default-1.0/Interactive[InteractiveJava]' for instance '/InvokeJavaProcess#Default-1.0/203/0' could not be successfully executed. The task failed while executing method '%PREPARE%'.
at fuego.papi.exception.TaskFailedException.create(TaskFailedException.java:57)
at fuego.server.AbstractProcessBean.createTaskFailedException(AbstractProcessBean.java:3572)
at fuego.fengine.FEngineProcessBean.createTaskFailedException(FEngineProcessBean.java:398)
at fuego.server.AbstractProcessBean.runTask(AbstractProcessBean.java:3193)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at fuego.lang.JavaClass.invokeMethod(JavaClass.java:1410)
at fuego.lang.JavaObject.invoke(JavaObject.java:227)
at fuego.component.Message.process(Message.java:585)
at fuego.component.ExecutionThread.processMessage(ExecutionThread.java:780)
at fuego.component.ExecutionThread.processBatch(ExecutionThread.java:755)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:142)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:134)
at fuego.fengine.FEngineProcessBean.processBatch(FEngineProcessBean.java:244)
at fuego.component.ExecutionThread.work(ExecutionThread.java:839)
at fuego.component.ExecutionThread.run(ExecutionThread.java:408)
at fuego.component.CustomExecution.next(CustomExecution.java:176)
at fuego.papi.impl.rmi.RMIExecution.next(RMIExecution.java:109)
at fuego.papi.impl.ProcessInstanceOperation.prepareExternalActivity(ProcessInstanceOperation.java:695)
at fuego.papi.impl.ProcessServiceSessionImpl.activityPrepare(ProcessServiceSessionImpl.java:1420)
at fuego.papi.impl.ProcessServiceSessionImpl.activityPrepare(ProcessServiceSessionImpl.java:1414)
at getinstance.prepare.main(prepare.java:43)
Caused by: fuego.lang.ComponentExecutionException: The method 'CIL_interactiveJavaPrepare' from class 'oracle.InvokeJavaProcess.Default_1_0.Instance' could not be successfully executed.
at fuego.component.ExecutionThreadContext.invokeMethod(ExecutionThreadContext.java:519)
at fuego.component.ExecutionThreadContext.invokeMethod(ExecutionThreadContext.java:273)
at fuego.fengine.FEEngineExecutionContext.invokeMethodAsCil(FEEngineExecutionContext.java:219)
at fuego.server.execution.EngineExecutionContext.runCil(EngineExecutionContext.java:1280)
at fuego.server.execution.TaskExecution.invoke(TaskExecution.java:401)
at fuego.server.execution.InteractiveNormalCilExecution.invoke(InteractiveNormalCilExecution.java:425)
at fuego.server.execution.TaskExecution.executeCIL(TaskExecution.java:513)
at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:697)
at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:657)
at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:154)
at fuego.server.execution.microactivity.InteractiveMicroActivity.executeNormalCil(InteractiveMicroActivity.java:501)
at fuego.server.execution.microactivity.InteractiveMicroActivity.executeItem(InteractiveMicroActivity.java:454)
at fuego.server.execution.microactivity.InteractiveMicroActivity.execute(InteractiveMicroActivity.java:104)
at fuego.server.AbstractProcessBean$48.execute(AbstractProcessBean.java:3184)
at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:304)
at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:470)
at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:551)
at fuego.transaction.TransactionAction.start(TransactionAction.java:212)
at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:123)
at fuego.server.execution.EngineExecution.executeImmediate(EngineExecution.java:66)
at fuego.server.AbstractProcessBean.runTask(AbstractProcessBean.java:3188)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at fuego.lang.JavaClass.invokeMethod(JavaClass.java:1410)
at fuego.lang.JavaObject.invoke(JavaObject.java:227)
at fuego.component.Message.process(Message.java:585)
at fuego.component.ExecutionThread.processMessage(ExecutionThread.java:780)
at fuego.component.ExecutionThread.processBatch(ExecutionThread.java:755)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:142)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:134)
at fuego.fengine.FEngineProcessBean.processBatch(FEngineProcessBean.java:244)
at fuego.component.ExecutionThread.work(ExecutionThread.java:839)
at fuego.component.ExecutionThread.run(ExecutionThread.java:408)
Caused by: java.lang.NullPointerException
at oracle.InvokeJavaProcess.Default_1_0.Instance.CIL_interactiveJavaPrepare(Instance.xcdl:1)
at oracle.InvokeJavaProcess.Default_1_0.Instance.CIL_interactiveJavaPrepare(Instance.xcdl)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at fuego.component.ExecutionThreadContext.invokeMethod(ExecutionThreadContext.java:512)
... 34 more
Process exited with exit code 0.
----------------------------------------------------------------Hi Satinder,
This time I change something in the process.
1, the process still has 3 interactive activities: jcooperkeyin, tojava, Interactivejstein.
2, I create a BPMObject including amount (decimal, 2) , purpose
3, the main task of jcooperkeyin is a screenflow: set values to purpose and amount
4, tojava activity is external.
Prepare method name: tojavaprepare
method contents:
arg1.amount=var1.amount
arg1.purpose=var1.purpose
Commit method: tojavacommit
method contents:
var1.purpose=arg2.purpose
var1.amount=arg2.amount
5, I create an instance variable name var1 and its type is BPMObjec
6, the argument module is changed to out
7, I change the java prepare method code as you commend:
8, After I run the java prepare method, I get some new errors which as follow:
--------------------------code----------------------------------------------------
package getinstance;
import fuego.lang.Decimal;
import fuego.lang.DynamicObject;
import fuego.papi.Arguments;
import fuego.papi.CommunicationException;
import fuego.papi.InstanceInfo;
import fuego.papi.ProcessService;
import fuego.papi.ProcessServiceSession;
import fuego.papi.OperationException;
import java.math.BigDecimal;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
public class prepare {
public prepare() {
public static void main(String[] args) {
prepare prepare = new prepare();
Properties configuration = new Properties();
configuration.setProperty(ProcessService.DIRECTORY_ID, "default");
configuration.setProperty(ProcessService.DIRECTORY_PROPERTIES_FILE, "D:\\BPM_HOME_standalone\\webapps\\papiws\\WEB-INF\\directory.xml");
configuration.setProperty(ProcessService.WORKING_FOLDER, "/tmp");
System.out.println("1111111111111");
Arguments argumentsResult = Arguments.create();
String taskIn = "0";
String activity = "tojava";
//String activity = "jcooperkeyin";
String processId = "/InvokeJava2#Default-1.0";
//String instanceId = "/InvokeJava2#Default-1.0/281/0";
Arguments arguments = Arguments.create();
DynamicObject dyn = DynamicObject.create();
dyn.setField("amount", new BigDecimal(100.0));
dyn.setField("purpose", "---------");
arguments.putArgument("var1", dyn);
try {
ProcessService processService = ProcessService.create(configuration);
ProcessServiceSession session = processService.createSession("jcooper", "welcome1", "host");
String ist="ist";
for (InstanceInfo instance : session.processGetInstances(processId)) {
System.out.println(" instance.getId()-> " + instance.getId());
ist=instance.getId();
System.out.println(" activity.getActivityId()-> " +instance.getActivityId());
System.out.println(" activity.getActivityName()-> " +instance.getActivityName());
System.out.println("----------111----------------------");
argumentsResult = session.activityPrepare(activity, instance.getId(), arguments); //error starts from here
System.out.println("-----2222-----------");
DynamicObject obj = argumentsResult.getDynamicObject();
Map fieldMaps = obj.asFieldsMap();
for (Iterator<String> iterator = fieldMaps.keySet().iterator(); iterator.hasNext();) {
String key = iterator.next();
System.out.println("key : "+ key + "value" +obj.getField(key));
DynamicObject obj2 = argumentsResult.getDynamicObject();
Map fieldMaps2 = obj2.asFieldsMap();
for (Iterator<String> it = fieldMaps2.keySet().iterator(); it.hasNext();) {
System.out.println("key : "+ key + " value : "+ obj2.getField(key));
System.out.println("444444444");
session.close();
} catch (OperationException e) {
e.printStackTrace();
---------------------new error------------------------------------------------------
E:\Jdeveloper10131_20090318\jdk\bin\javaw.exe -client -classpath E:\Jdeveloper10131_20090318\jdev\mywork\Java_be_invoked\getInstance\classes;D:\BPM_HOME_standalone\client\papi\lib\fuegopapi-client.jar;D:\BPM_HOME_standalone\client\papi\lib\b1base.jar;D:\BPM_HOME_standalone\client\papi\lib\b1oracle.jar;D:\BPM_HOME_standalone\client\papi\lib\b1util.jar getinstance.prepare
1111111111111
Creating connector [fuego:SQL]
Creating ProcessService with id 'oracle/2009-03-31 18:08:47+08:00'.
Local folder /tmp\system\Schema3387192-1796619082\catalogs found.
Loading catalogs from local folder: /tmp\system\Schema3387192-1796619082\catalogs
1 jars found locally.
Local jar '181' succesfully loaded.
[CatalogMgrCache] =======================
Registering CatalogMgr [oracle/2009-03-31 18:08:47+08:00] ...CatalogManagerCache 14949315:
Managers:
Counters:
[CatalogMgrCache] =======================
CatalogMgr [oracle/2009-03-31 18:08:47+08:00] REGISTERED!CatalogManagerCache 14949315:
Managers:
{oracle/2009-03-31 18:08:47+08:00=fuego.util.LocalCatalogManager@1dacccc}
Counters:
ProcessService 'oracle/2009-03-31 18:08:47+08:00' created successfully.
Unreachable Engine Tolerance (seconds):
by default: 0
to be used: 0
This papi client will not cache exceptions which imply that an engine could not be reached.
instance.getId()-> /InvokeJava2#Default-1.0/281/0
Adding local catalog for project: 181
activity.getActivityId()-> /InvokeJava2#Default-1.0/tojava
activity.getActivityName()-> tojava
----------111----------------------
[CatalogLoaderMgrCache] =======================
CatalogClassLoader[oracle/2009-03-31 18:08:47+08:00-181] added to cache
Catalog ClassLoader MAP:
{oracle/2009-03-31 18:08:47+08:00-181=CatalogClassLoader(FuegoObjectCatalog(catalogIn: 181, directoryId: oracle/2009-03-31 18:08:47+08:00))}
Catalog Manager Cache:
CatalogManagerCache 14949315:
Managers:
{oracle/2009-03-31 18:08:47+08:00=fuego.util.LocalCatalogManager@1dacccc}
Counters:
{oracle/2009-03-31 18:08:47+08:00=1}
Processing the synchronization information, instance '181:281:0' was updated.
fuego.papi.OperationException: Operation exception.
at fuego.papi.OperationException.wrap(OperationException.java:65)
at fuego.papi.impl.ProcessInstanceOperation.prepareExternalActivity(ProcessInstanceOperation.java:706)
at fuego.papi.impl.ProcessServiceSessionImpl.activityPrepare(ProcessServiceSessionImpl.java:1420)
at fuego.papi.impl.ProcessServiceSessionImpl.activityPrepare(ProcessServiceSessionImpl.java:1414)
at getinstance.prepare.main(prepare.java:58)
Caused by: fuego.rmi.RMIRuntimeException: Fuego RMI: Failure during the invocation. Check the exception chain for details.
at fuego.rmi.RemoteProxy.processBatch(RemoteProxy.java:192)
at fuego.component.ExecutorClient.dispatch(ExecutorClient.java:190)
at fuego.component.CustomExecution.next(CustomExecution.java:247)
at fuego.papi.impl.rmi.RMIExecution.next(RMIExecution.java:109)
at fuego.papi.impl.ProcessInstanceOperation.prepareExternalActivity(ProcessInstanceOperation.java:695)
... 3 more
Caused by: fuego.rmi.spi.SerializationException: Unable to receive the message because of a serialization error.
at fuego.rmi.spi.BaseConnection.send(BaseConnection.java:105)
at fuego.rmi.ServerCluster.send(ServerCluster.java:210)
at fuego.rmi.ServerCluster.sendResult(ServerCluster.java:461)
at fuego.rmi.ServerCluster.access$300(ServerCluster.java:43)
at fuego.rmi.ServerCluster$ClientRequest$1.put(ServerCluster.java:556)
at fuego.component.ExecutionThread.sendResult(ExecutionThread.java:532)
at fuego.component.ExecutionThreadContext.doClientInvoke(ExecutionThreadContext.java:695)
at fuego.component.ClientRemoteComponent.doInvocation(ClientRemoteComponent.java:303)
at fuego.component.ClientRemoteComponent.invokeRelayTo(ClientRemoteComponent.java:211)
at fuego.component.ExecutionRelayedThrowable.execute(ExecutionRelayedThrowable.java:109)
at fuego.server.execution.TaskExecution.handleExecutionRelayedThrowable(TaskExecution.java:816)
at fuego.server.execution.TaskExecution.handleComponentExecutionException(TaskExecution.java:767)
at fuego.server.execution.TaskExecution.executeCIL(TaskExecution.java:516)
at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:697)
at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:657)
at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:154)
at fuego.server.execution.microactivity.InteractiveMicroActivity.executeNormalCil(InteractiveMicroActivity.java:501)
at fuego.server.execution.microactivity.InteractiveMicroActivity.executeItem(InteractiveMicroActivity.java:454)
at fuego.server.execution.microactivity.InteractiveMicroActivity.execute(InteractiveMicroActivity.java:104)
at fuego.server.AbstractProcessBean$48.execute(AbstractProcessBean.java:3184)
at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:304)
at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:470)
at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:551)
at fuego.transaction.TransactionAction.start(TransactionAction.java:212)
at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:123)
at fuego.server.execution.EngineExecution.executeImmediate(EngineExecution.java:66)
at fuego.server.AbstractProcessBean.runTask(AbstractProcessBean.java:3188)
at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at fuego.lang.JavaClass.invokeMethod(JavaClass.java:1410)
at fuego.lang.JavaObject.invoke(JavaObject.java:227)
at fuego.component.Message.process(Message.java:585)
at fuego.component.ExecutionThread.processMessage(ExecutionThread.java:780)
at fuego.component.ExecutionThread.processBatch(ExecutionThread.java:755)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:142)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:134)
at fuego.fengine.FEngineProcessBean.processBatch(FEngineProcessBean.java:244)
at fuego.component.ExecutionThread.work(ExecutionThread.java:839)
at fuego.component.ExecutionThread.run(ExecutionThread.java:408)
... 8 more
Caused by: java.io.NotSerializableException: java.lang.Object
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at java.util.HashMap.writeObject(Unknown Source)
at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeArray(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at fuego.component.Message.writeObject(Message.java:653)
at sun.reflect.GeneratedMethodAccessor23.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at fuego.component.Batch.writeObject(Batch.java:151)
at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at fuego.rmi.Packet.write(Packet.java:240)
at fuego.rmi.spi.BaseConnection.send(BaseConnection.java:102)
at fuego.rmi.ServerCluster.send(ServerCluster.java:210)
at fuego.rmi.ServerCluster.sendResult(ServerCluster.java:461)
at fuego.rmi.ServerCluster.access$300(ServerCluster.java:43)
at fuego.rmi.ServerCluster$ClientRequest$1.put(ServerCluster.java:556)
at fuego.component.ExecutionThread.sendResult(ExecutionThread.java:532)
at fuego.component.ExecutionThreadContext.doClientInvoke(ExecutionThreadContext.java:695)
at fuego.component.ClientRemoteComponent.doInvocation(ClientRemoteComponent.java:303)
at fuego.component.ClientRemoteComponent.invokeRelayTo(ClientRemoteComponent.java:211)
at fuego.component.ExecutionRelayedThrowable.execute(ExecutionRelayedThrowable.java:109)
at fuego.server.execution.TaskExecution.handleExecutionRelayedThrowable(TaskExecution.java:816)
at fuego.server.execution.TaskExecution.handleComponentExecutionException(TaskExecution.java:767)
at fuego.server.execution.TaskExecution.executeCIL(TaskExecution.java:516)
at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:697)
at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:657)
at fuego.server.execution.TaskExecution.executeTask(TaskExecution.java:154)
at fuego.server.execution.microactivity.InteractiveMicroActivity.executeNormalCil(InteractiveMicroActivity.java:501)
at fuego.server.execution.microactivity.InteractiveMicroActivity.executeItem(InteractiveMicroActivity.java:454)
at fuego.server.execution.microactivity.InteractiveMicroActivity.execute(InteractiveMicroActivity.java:104)
at fuego.server.AbstractProcessBean$48.execute(AbstractProcessBean.java:3184)
at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:304)
at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:470)
at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:551)
at fuego.transaction.TransactionAction.start(TransactionAction.java:212)
at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:123)
at fuego.server.execution.EngineExecution.executeImmediate(EngineExecution.java:66)
at fuego.server.AbstractProcessBean.runTask(AbstractProcessBean.java:3188)
at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at fuego.lang.JavaClass.invokeMethod(JavaClass.java:1410)
at fuego.lang.JavaObject.invoke(JavaObject.java:227)
at fuego.component.Message.process(Message.java:585)
at fuego.component.ExecutionThread.processMessage(ExecutionThread.java:780)
at fuego.component.ExecutionThread.processBatch(ExecutionThread.java:755)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:142)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:134)
at fuego.fengine.FEngineProcessBean.processBatch(FEngineProcessBean.java:244)
at fuego.component.ExecutionThread.work(ExecutionThread.java:839)
at fuego.component.ExecutionThread.run(ExecutionThread.java:408)
Process exited with exit code 0. -
No such method error when launching the Interactive form
Hi Experts,
I have developed a simeple Java Webdynpro application and added an Interactive form without any controls in it. Created the context with one value node and a binary value attribute.
I have assigned value node to datasource and binary attribute to pdfSource. When I launch the application I am getting the following no such method error.
java.lang.NoSuchMethodError: com/sap/tc/webdynpro/clientserver/uielib/adobe/api/IWDInteractiveForm.setTemplateSource(Ljava/lang/String;)V
The currently executed application, or one of the components it depends on, has been compiled against class file versions that are different from the ones that are available at runtime.
If the exception message indicates, that the modified class is part of the Web Dynpro Runtime (package com.sap.tc.webdynpro.*) then the running Web Dynpro Runtime is of a version that is not compatible with the Web Dynpro Designtime (Developer Studio or Component Build Server) which has been used to build + compile the application.
My NWDS is of Version 7.0.06
and J2EE Engine is of Version 6.40.
any guess why I am getting this error.
Thanks
Chinna.Issue solved. Compatablility issue NWDS 2.0 Version should use for NW 2004.
-
Abstract Method Error and XML Parsing
I am using wl6sp1. I am parsing an XML file from within the
servlet using jaxp1.1 and crimson.
Following is code:
1- SAXParserFactory spf = SAXParserFactory.newInstance();
2- sp = spf.newSAXParser();
3- xr = sp.getXMLReader();
4- xr.setContentHandler(new ParseXML());
5- xr.parse( new InputSource("Example3.xml"));
This program works fine when execute from command line but in servlet on line
3 it says:
"Abstract Method Error"
I have created XML Registry to use Crimson as XML parser rather than default.
I think somehow wl is still using jaxp1.0 which is built in
support in wlsp1.
Whats wrong with the code...or what configuration i am missing???I'm assuming you have already put crimson.jar first in the classpath for the java
command you use to start WebLogic. If so, have you tried putting the servlet in
a .war file with the crimson.jar in its' WEB-INF/lib directory?
Regards,
Mike Wooten
"anyz" <[email protected]> wrote:
>
I am using wl6sp1. I am parsing an XML file from within the
servlet using jaxp1.1 and crimson.
Following is code:
1- SAXParserFactory spf = SAXParserFactory.newInstance();
2- sp = spf.newSAXParser();
3- xr = sp.getXMLReader();
4- xr.setContentHandler(new ParseXML());
5- xr.parse( new InputSource("Example3.xml"));
This program works fine when execute from command line but in servlet
on line
3 it says:
"Abstract Method Error"
I have created XML Registry to use Crimson as XML parser rather than
default.
I think somehow wl is still using jaxp1.0 which is built in
support in wlsp1.
Whats wrong with the code...or what configuration i am missing??? -
Abstract Method Error in retrieving Blob
Hi!
while (rs.next())
Blob blob=rs.getBlob(1);
throws Abstract Method Error
why?
Thanxs in advanceYou'll probably find that the JDBC driver that you are using doesn't support blobs. Check the documentation that comes with your driver, it should tell you what parts of the JDBC specification it supports.
Col -
Server error: Class: UCF Acroform Method error Message: Could not send mess
Hi Gurus,
I'm having a problem with displaying PDF file in the portal. I tried reinstalling Adobe 9. Tick and untick the option Display PDF in browser. But still encountering the error. Is it something to do with IE version? Please Help. Thanks in advance.
Server error: Class: UCF Acroform Method error Message: Could not send messageHi,
Please speify the system information so that I can help you
Regards
Sharanya.R -
I've created a simple web page that contains a text box in which the user enters an URL. And also have a servlet to take this address and do something "useful" with it. The Servlet has a doPost method to get this address, and the web page also has the corresponding method
(<FORM method="POST" ACTION="../fyp/AddressServlet" >).
I'm using a j2ee server, which runs fine, as does the deploytool.
However, when I attempt to open the web page in my browser, I get the following error,
"HTTP Status 405-HTTP method GET is not supported by this URL"
I don't know why I'm getting a GET method error, when it's a POST method I'm using.
Any help would be appreciated,
thanks,
ahhforHi !
You're using the POST method to call the servlet when you submit the HTML page. However, when you try to load your HTML page into the browser, this is done with GET !
Check your server.xml file in the /conf directory and see if your application context is correctly defined. And then check the web.xml file in your application's WEB-INF directory. Finally, check your path to the servlet in your HTML file. -
Organization Payment method Error
Dear All,
When I trying to attach a bank account in cash management Tab im getting following error.
APP-PAY-34070:the bank account does not uniquely map to cash management account
If anybody faced similar issue please let me know the solution you have implemented.
Regards,
Jithin dev962274 wrote:
Dear All,
When I trying to attach a bank account in cash management Tab im getting following error.
APP-PAY-34070:the bank account does not uniquely map to cash management account
If anybody faced similar issue please let me know the solution you have implemented.
Regards,
Jithin devPlease see these docs.
Defining Organizational Payment Method, Errors: APP-PAY-34070: The Bank Account Does not Uniquely map to Cash Management Account. [ID 1106723.1]
Costing of Payment : Can We Populate Control Account With Multiple Liability Accounts ? [ID 1266020.1]
Thanks,
Hussein -
Prepare() method gridItemRenderer Flex Hero
Hi,
last week I installed Flash Builder Burrito to try the new spark dataGrid. I was testing the gridItemRenderer. I wanted to check something form the data and according to the results the item renderer should show three different conditions. But unfortunately I was unable to make the prepare() function work. I did it as was shown in Adobe TV (Deep Dive into Spark DataGrid) but even a trace() was not triggered.
Is this method not working or am I making something wrong?
Thanks for your help.The Link is:
http://tv.adobe.com/watch/max-2010-develop/deep-dive-into-the-spark-datagrid-component-and -item-renderers-/
I created a dataGrid and inserted the following column:
<s:GridColumn dataField="status" headerText="VP" itemRenderer="itemRenderer.FirstItemRenderer">
which uses FirstItemRenderer as ItemRenderer. Here the code for FirstItemRenderer:
<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
>
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
// You SHOULD be able to use this method to programatically
// change the appearance of the data in this cell. However it doesn't
// seem to be called, yet. Probably a work in progress.
override public function prepare( willBeRecycled:Boolean ):void {
labelSatus.text = "Result";
/* protected function griditemrenderer1_creationCompleteHandler(event:FlexEvent):void
labelSatus.text = "Result";
]]>
</fx:Script>
<s:Label id="labelSatus"/>
</s:GridItemRenderer>
If I use the prepare method, the dataGrid is not populated with the label text "Result". But if I add a creationComplete Event to GridItemRenderer, the dataGrid column is populated with the "Result" text.
So, my question is am I using the prepare function wrong? Can you show me how to use it to make conditional checks on the data source?
Thanks in advance, -
Is not abstract and does not override abstract method ERROR
Hello. I'm new at all this, and am attempting to recreate a sample code out of my book (Teach Yourself XML in 24 Hours), and I keep getting an error. I appriciate any help.
This is the Error that I get:
DocumentPrinter is not abstract and does not override abstract method skippedEntity(java.lang.String) in org.xml.sax.ContentHandler
public class DocumentPrinter implements ContentHandler, ErrorHandler
^This is the sourcecode:
import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.ErrorHandler;
import org.xml.sax.Locator;
import org.xml.sax.SAXParseException;
import org.xml.sax.XMLReader;
public class DocumentPrinter implements ContentHandler, ErrorHandler
// A Constant containing the name of the SAX parser to use.
private static final String PARSER_NAME = "org.apache.xerces.parsers.SAXParser";
public static void main(String[] args)
// Check to see whether the user supplied any command line arguments. If not, print an error and exit.
if (args.length == 0)
System.out.println("No XML document path specified.");
System.exit(1);
// Create a new instance of the DocumentPrinter class.
DocumentPrinter dp = new DocumentPrinter();
try
// Create a new instance of the XML Parser.
XMLReader parser = (XMLReader)Class.forName(PARSER_NAME).newInstance();
// Set the parser's content handler
// parser.setContentHandler(dp);
// Set the parsers error handler
parser.setErrorHandler(dp);
// Parse the file named in the argument
parser.parse(args[0]);
catch (Exception ex)
System.out.println(ex.getMessage());
ex.printStackTrace();
public void characters(char[] ch, int start, int length)
String chars ="";
for (int i = start; i < start + length; i++)
chars = chars + ch;
System.out.println("Recieved characters: " + chars);
public void startDocument()
System.out.println("Start Document.");
public void endDocument()
System.out.println("End of Document.");
public void startElement(String namespaceURI, String localName, String qName, Attributes atts)
System.out.println("Start element: " + localName);
for (int i = 0; i < atts.getLength(); i++)
System.out.println(" Attribute: " + atts.getLocalName(i));
System.out.println(" Value: " + atts.getValue(i));
public void endElement(String namespaceURI, String localName, String qName)
System.out.println("End of element: " + localName);
public void startPrefixMapping(String prefix, String uri)
System.out.println("Prefix mapping: " + prefix);
System.out.println("URI: " + uri);
public void endPrefixMapping(String prefix)
System.out.println("End of prefix mapping: " + prefix);
public void ignorableWhitespace(char[] ch, int start, int length)
System.out.println("Recieved whitespace.");
public void processingInstruction(String target, String data)
System.out.println("Recieved processing instruction:");
System.out.println("Target: " + target);
System.out.println("Data: " + data);
public void setDocumentLocation(Locator locator)
// Nada
public void error(SAXParseException exception)
System.out.println("Parsing error on line " + exception.getLineNumber());
public void fatalError(SAXParseException exception)
System.out.println("Fatal parsing error on line " + exception.getLineNumber());
public void warning(SAXParseException exception)
System.out.println("Warning on line " + exception.getLineNumber());Check to make sure that the arguments are consistent with your ContentHandler class. Probably the wrong type.
I think you forgot to include the skippedEntity method, it seems to be missing. Even if an implemented class has a method that you are not using, you still have to include the method in your code even if it doesn't do anything.
Message was edited by:
ChargersTule1 -
"Your payment method was declined. Please enter another payment method" Error
Hello,
I've been trying to download an app for about two hours now. I recently got a new Macbook and iPad, my iPhone is a bit older and has been used frequently. I have only bought paid apps with my iPhone (and other iPad -- not usable currently). I have been trying to download a game which is $4.99 on my account, I have tried with my Mac, iPad, and iPhone, no luck. Every time I get a error saying "Your payment method was declined. Please enter another payment method". I know for a fact I have more than enough money to pay for this app. All the details have been checked and checked again. What is the problem?
I also get an error when first buying the game (or attemting to) and it says something along the lines of "You've recently used a new device or computer to access this apple id, please sign in to confirm your purchase". That then leads to my confirmation of my security code on my card, which is triggering the first mentioned error.
Apple Support has not yet given me a response, can any of you help?I think that for some international copyright issue, Apple is now blocking purchases from your store if they detect that your IP is outside the frontiers. I've been using my Canadian Visa Card for two years to purchase from France on ITune Store Canada and I never had a problem until today. Impossible to buy RunKeeper Pro. I get the same message you get. The only option seems to swithch back to IStore France and modify the account details with a french address and a french credit card.
Are you in a similar situation? -
Hi, I'm getting a message that reads: exception occured during event dispatching: java.lang.nosuchmethod error.
Here's some of my code for a game of blackjack when I press the start game button everything works fine the textfield displays 2 cards and it gives me a total for the 2 cards.
But when I press the hit button that's when I get the nosuchmethod error.
import java.awt.*;
import javax.swing.*;
import java.awt.event.*; // added for event handling
public class Blackjack_Frame
final JFrame aFrame = new JFrame("MMSD 3610 Blackjack");
Container contentPane = aFrame.getContentPane();
aFrame.setSize(450, 200);
// We don't need to set the layout manager for
// a JFrame's content pane - it is automatically a
// BorderLayout by default!
// Technique for centering a frame on the screen.
Dimension frameSize = aFrame.getSize();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
aFrame.setLocation((screenSize.width - frameSize.width)/2,
(screenSize.height - frameSize.height)/2);
aFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Let's create the leftmost panel. Note that we use names
// for our components that are somewhat self-documenting.
JPanel leftPanel = new JPanel();
// We'll assign the panel a GridLayout (it would otherwise
// default to FlowLayout).
leftPanel.setLayout(new GridLayout(3, 1));
// We'll create two labels on the fly and hand them
// to the panel; there's no need to bother maintaining
// a named handle on any of these labels.
leftPanel.add(new JLabel("BLACKJACK ! :"));
leftPanel.add(new JLabel("Your hand:"));
leftPanel.add(new JLabel("Dealers hand:"));
// Now, we'll attach the panel to the frame.
contentPane.add(leftPanel, BorderLayout.WEST);
// Repeat the process with the center panel.
JPanel centerPanel = new JPanel();
centerPanel.setLayout(new GridLayout(3, 1));
// Here we make the TextField un-editable to the users
// but it is enabled so we can display the cards
// to the user.
final JTextField input1TextField = new JTextField(30);
input1TextField.setEditable(false);
input1TextField.setEnabled(true);
JTextField input2TextField = new JTextField(30);
input2TextField.setEditable(false);
input2TextField.setEnabled(true);
JTextField input3TextField = new JTextField(30);
input3TextField.setEditable(false);
input3TextField.setEnabled(true);
centerPanel.add(input1TextField);
centerPanel.add(input2TextField);
centerPanel.add(input3TextField);
contentPane.add(centerPanel, BorderLayout.CENTER);
// This panel displays all the buttons.
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(1, 4));
JButton hitButton = new JButton("HIT");
JButton stayButton = new JButton("STAY");
JButton endGameButton = new JButton("END GAME");
JButton startGameButton = new JButton("START GAME");
buttonPanel.add(hitButton);
buttonPanel.add(stayButton);
buttonPanel.add(endGameButton);
buttonPanel.add(startGameButton);
contentPane.add(buttonPanel, BorderLayout.SOUTH);
// I tried using named inner classes first but didn't have much
// luck so I had better success with anonymous inner classes.
// First, we create a listener object to respond to
// the "START GAME" button.
ActionListener listen = new ActionListener()
public void actionPerformed(ActionEvent e)
CardDeck deck = new CardDeck();
deck.shuffle();
Hand myHand = deck.dealHand(2);
Hand yourHand = deck.dealHand(2);
input1TextField.setText(" " + (myHand) +
(" Dealer's hand has " + myHand.getBlackjackHandValue()));
}; // After doing some research I found I had to use this weird };
// syntax because I needed to terminate the single statement
// " ActionListener listen = new ActionListener() "
// ... and then we register this listener with the appropriate
// component.
startGameButton.addActionListener(listen);
// We do the same for the "HIT" button.
listen = new ActionListener()
public void actionPerformed(ActionEvent e)
CardDeck deck = new CardDeck();
deck.shuffle();
Hand myHand1 = deck.dealHand(1);
Card newCard = myHand1.getCard();
// I seem to be getting the error right here.
Hand myHand = newCard.addCardBackInHand();
input1TextField.setText(" " + (myHand) +
(" Dealer's hand has " + myHand.getBlackjackHandValue()));
hitButton.addActionListener(listen);
// We do the same for the "END GAME" button.
listen = new ActionListener()
public void actionPerformed(ActionEvent e)
aFrame.dispose();
System.exit(0);
endGameButton.addActionListener(listen);
aFrame.setVisible(true);
// Class defining a hand of cards and we use the ever so helpful Stack to store the hand.
import java.util.*;
// The compiler provides us with a default constructor and creates a hand object, which
// contains a empty Stack or empty hand. We then add a card object by pushing it into
// our Stack or hand.
class Hand
private Stack hand = new Stack(); // Stores the cards in the hand
public void add(Card card)
hand.push(card);
// This method pulls a single card from the Hand.
public Card getCard()
return (Card)hand.pop();
// This method returns the number of cards that are in the hand.
public int getCardCount()
return hand.size();
// This method pushes the hit card back into the hand for display purposes.
public Hand addCardBackInHand()
return (Card)hand.push();
// We need a way to display our hand so we use the toString() method again to display
// a string representation of our hand object. Here I found another helpful little
// item called the Iterator it allows me to deal one card at a time and store it in
// my Stack hand. We also use a buffered stream because transferring data in a buffer
// is a lot more efficient because it stores chunks of data in memory before
// transferring the data to or from an external device.
public String toString()
Iterator cards = hand.iterator();
StringBuffer str = new StringBuffer();
while(cards.hasNext())
str.append(" "+ (Card)cards.next());
return str.toString();
public int getBlackjackHandValue()
int val; // Value of the hand.
boolean ace; // This will be set to true if we have an ace in our hand.
int cards; // Number of cards in the hand.
// Here we initalize our variables with a value.
val = 0;
ace = false;
cards = getCardCount();
// Here we use a for loop to loop thru the cards in the hand and then
// determine a value for those cards.
for (int i = 0; i < cards; i++)
int cardVal; // The value of the card.
Card card;
card = getCard(); // Get a card from the hand.
cardVal = card.getValue(); // Get the value of the card which should
// be between 1 to 13.
if (cardVal > 10)
cardVal = 10; // This assigns a value of 10 to the face cards
if (cardVal == 1)
ace = true; // We have an ace in our Blackjack hand.
val = val + cardVal;
// Since an ace can either be a 1 or 11 in blackjack we have to make
// allowances for that so, if we have an ace and the value of the hand
// is less than or equal to 21 we do that by adding an extra 10 points
// to val.
if (ace == true && val + 10 <= 21)
val = val + 10;
return val; // the value of our blackjack hand.
}Thanks...........gee mannIts hard to say without seeing the Classes CardDeck and Card... stilll let me guess
listen = new ActionListener()
public void actionPerformed(ActionEvent e)
CardDeck deck = new CardDeck();
deck.shuffle();
Hand myHand1 = deck.dealHand(1);
Card newCard = myHand1.getCard();
// I seem to be getting the error right here.
Hand myHand = newCard.addCardBackInHand();Are u sure the method addCardBackInHand() is in the class "Card"... I saw a method by that name in the class Hand.... Am i right? -
Getting no such method error when calling getEnvelope()
I getting this error
java.lang.NoSuchMethodError: org.apache.xerces.dom.ElementNSImpl.<init>(Lorg/apache/xerces/dom/CoreDocumentImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
at com.sun.xml.messaging.saaj.soap.impl.ElementImpl.<init>(ElementImpl.java:45)
at com.sun.xml.messaging.saaj.soap.impl.EnvelopeImpl.<init>(EnvelopeImpl.java:40)
at com.sun.xml.messaging.saaj.soap.impl.EnvelopeImpl.<init>(EnvelopeImpl.java:49)
at com.sun.xml.messaging.saaj.soap.ver1_1.Envelope1_1Impl.<init>(Envelope1_1Impl.java:34)
at com.sun.xml.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEmptyEnvelope(SOAPPart1_1Impl.java:39)
at com.sun.xml.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:78)
SOAPPart sp = message.getSOAPPart();
SOAPEnvelope envelope = sp.getEnvelope();
when I call the getEnvelope() method I get this message.
If this is problem because of wrong jar files please guide mew what jar files I must use I am using jdk 1.4
these are the jar fiels I am using
<classpathentry kind="lib" path="lib/log4j.jar"/>
<classpathentry kind="lib" path="lib/xerces.jar"/>
<classpathentry kind="lib" path="lib/xercesImpl.jar"/>
<classpathentry kind="lib" path="lib/jdom.jar"/>
<classpathentry kind="lib" path="lib/activation.jar"/>
<classpathentry kind="lib" path="lib/classes12.jar"/>
<classpathentry kind="lib" path="lib/commons-logging-api.jar"/>
<classpathentry kind="lib" path="lib/j2ee_small_version.jar"/>
<classpathentry kind="lib" path="lib/jakarta-regexp-1.2.jar"/>
<classpathentry kind="lib" path="lib/jaxp.jar"/>
<classpathentry kind="lib" path="lib/jaxp-api.jar"/>
<classpathentry kind="lib" path="lib/saaj-api.jar"/>
<classpathentry kind="lib" path="lib/saaj-impl.jar"/>
<classpathentry kind="lib" path="lib/xalan.jar"/>Issue solved. Compatablility issue NWDS 2.0 Version should use for NW 2004.
Maybe you are looking for
-
What is the diffrence between Row id and primary key ?
dear all my question is about creating materialized views parameters (With Rowid and With Primary kry) my master table contains a primary key and i created my materialized view as follow: CREATE MATERIALIZED VIEW LV_BULLETIN_MV TABLESPACE USERS NOCAC
-
Upgrade make my X server hang forever
Hi all after my last upgrade from kernel 29 to 30 I cannot get into my linux system as my X will not load - it doesn't give me the console login and it won't allow me to use any other ALT+Fn I managed to get into into the logs and this is what I foun
-
What is better - a great video card or just a bunch of Ram
We are starting a broadcasting section at our college and I am purchasing some hardware (macs of course) and software. We will be using Final Cut Pro, Photoshop and other software. My question is: If you only had a limited amount of money would you b
-
I updated and now get an audio configuration problem message.
The message that pops up is "iTunes cannot run because it has encountered a problem with your audio configuration." Any advice?
-
Java.sql.SQLException: Invalid column name: user_id
Hi, I am using SQL Server 2000 database and using a Java DAO class executing an SQL query using preparedStatement.The issue is that intermittently i get the following exception: "SQLException:Invalid column name". I checked the filed name in the tabl