-
15. Re: java.lang.OutOfMemoryError: Requested array size exceeds
marklittle May 15, 2006 8:42 AM (in response to paul.robinson)If you have a stand-alone test case that illustrates the problem let us know: we can try it at our side against Oracle. However, from what you've just said about the CachedConnectionManager, that does look like a culprit. But until we can reproduce the problem, we can't be sure.
-
16. Re: java.lang.OutOfMemoryError: Requested array size exceeds
peter_p May 16, 2006 8:00 AM (in response to paul.robinson)Sorry for the delay. Now I'm able to reproduce the error using context interception.
In most cases I got the following exception stacktrace. It is independent of the orb version ( 2.2.1 or 2.2.1 patch 1 ) and independent of the CachedConnectionManager ( see my last posting ).
Setting the debug attribute of the CachedConnectionManager to false the messages are suppressed but the exception still occurs.
11:37:40,796 INFO [CachedConnectionManager] Closing a connection for you. Please close them yourself: org.jboss.resource.adapter.jdbc.WrappedConnection@12dc320
11:38:09,953 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null
11:38:09,953 ERROR [JDBCExceptionReporter] Error checking for a transaction.; - nested throwable: (javax.transaction.SystemException); - nested throwable: (org.jboss.resource.JBossResourceException: Error checking for a transaction.; - nested throwable: (javax.transaction.SystemException))
11:38:09,953 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null
11:38:09,953 ERROR [JDBCExceptionReporter] Error checking for a transaction.; - nested throwable: (javax.transaction.SystemException); - nested throwable: (org.jboss.resource.JBossResourceException: Error checking for a transaction.; - nested throwable: (javax.transaction.SystemException))
11:38:09,953 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:91)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:79)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:314)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:114)
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93)
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2165)
at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2117)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2373)
at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:84)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:877)
at org.springframework.orm.hibernate3.SessionFactoryUtils$SpringSessionSynchronization.beforeCommit(SessionFactoryUtils.java:884)
at org.springframework.orm.hibernate3.SessionFactoryUtils$JtaSessionSynchronization.beforeCompletion(SessionFactoryUtils.java:1018)
at com.arjuna.ats.internal.jta.resources.jts.orbspecific.SynchronizationImple.before_completion(SynchronizationImple.java:128)
at org.omg.CosTransactions.SynchronizationPOA._invoke(Unknown Source)
at org.jacorb.poa.RequestProcessor.invokeOperation(Unknown Source)
at org.jacorb.poa.RequestProcessor.process(Unknown Source)
at org.jacorb.poa.RequestProcessor.run(Unknown Source)
Caused by: org.jboss.util.NestedSQLException: Error checking for a transaction.; - nested throwable: (javax.transaction.SystemException); - nested throwable: (org.jboss.resource.JBossResourceException: Error checking for a transaction.; - nested throwable: (javax.transaction.SystemException))
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:79)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:80)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:311)
... 20 more
Caused by: org.jboss.resource.JBossResourceException: Error checking for a transaction.; - nested throwable: (javax.transaction.SystemException)
at org.jboss.resource.JBossResourceException.rethrowAsResourceException(JBossResourceException.java:49)
at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:337)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:462)
at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:894)
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:73)
... 22 more
Caused by: javax.transaction.SystemException
at com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.getTransaction(TransactionManagerImple.java:82)
at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.getTransaction(BaseTransactionManagerDelegate.java:106)
at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:329)
... 25 more
11:38:09,968 ERROR [SessionFactoryUtils] beforeCommit callback threw exception
org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access: Cannot open connection; nested exception is org.jboss.util.NestedSQLException: Error checking for a transaction.; - nested throwable: (javax.transaction.SystemException); - nested throwable: (org.jboss.resource.JBossResourceException: Error checking for a transaction.; - nested throwable: (javax.transaction.SystemException))
org.jboss.util.NestedSQLException: Error checking for a transaction.; - nested throwable: (javax.transaction.SystemException); - nested throwable: (org.jboss.resource.JBossResourceException: Error checking for a transaction.; - nested throwable: (javax.transaction.SystemException))
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:79)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:80)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:311)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:114)
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93)
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2165)
at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2117)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2373)
at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:84)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:877)
at org.springframework.orm.hibernate3.SessionFactoryUtils$SpringSessionSynchronization.beforeCommit(SessionFactoryUtils.java:884)
at org.springframework.orm.hibernate3.SessionFactoryUtils$JtaSessionSynchronization.beforeCompletion(SessionFactoryUtils.java:1018)
at com.arjuna.ats.internal.jta.resources.jts.orbspecific.SynchronizationImple.before_completion(SynchronizationImple.java:128)
at org.omg.CosTransactions.SynchronizationPOA._invoke(Unknown Source)
at org.jacorb.poa.RequestProcessor.invokeOperation(Unknown Source)
at org.jacorb.poa.RequestProcessor.process(Unknown Source)
at org.jacorb.poa.RequestProcessor.run(Unknown Source)
Caused by: org.jboss.resource.JBossResourceException: Error checking for a transaction.; - nested throwable: (javax.transaction.SystemException)
at org.jboss.resource.JBossResourceException.rethrowAsResourceException(JBossResourceException.java:49)
at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:337)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:462)
at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:894)
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:73)
... 22 more
Caused by: javax.transaction.SystemException
at com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.getTransaction(TransactionManagerImple.java:82)
at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.getTransaction(BaseTransactionManagerDelegate.java:106)
at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:329)
... 25 more
11:38:09,984 WARN [loggerI18N] [com.arjuna.ats.internal.jts.orbspecific.coordinator.generror] ArjunaTransactionImple.doBeforeCompletion caught exception: org.omg.CORBA.UNKNOWN: Server-side Exception: vmcid: 0x0 minor code: 0 completed: No
11:38:10,171 ERROR [LogInterceptor] TransactionRolledbackException in method: public abstract void de.mydomain.testclasses.tx2pc.ejb.interfaces.TxXchgServiceEjbFassade.xchgVerein(int,int,de.mydomain.testclasses.tx2pc.TxParam) throws de.mydomain.testclasses.txapp.exception.MyDataAccessException,java.rmi.RemoteException, causedBy:
javax.transaction.RollbackException
at com.arjuna.ats.internal.jta.transaction.jts.TransactionImple.commit(TransactionImple.java:261)
at org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:486)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:346)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
at org.jboss.ejb.Container.invoke(Container.java:873)
at sun.reflect.GeneratedMethodAccessor188.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:805)
at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:406)
at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
at sun.rmi.transport.Transport$1.run(Transport.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:536)
One time I noticed the following exception:
Server 1:
10:29:41,703 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_36] - BasicAction.End() - prepare phase of action-id a2b026f:1064:44698a0c:e4 failed.
10:29:41,703 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_38] - Action Aborting
10:29:41,718 WARN [loggerI18N] [com.arjuna.ats.internal.jts.resources.rrcaught] ResourceRecord.topLevelAbort caught exception: org.omg.CORBA.UNKNOWN: Server-side Exception: java.lang.NullPointerException vmcid: 0x0 minor code: 0 completed: No
10:29:41,734 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_54] - Top-level abort of action a2b026f:1064:44698a0c:e4 received TwoPhaseOutcome.FINISH_ERROR from <ClassName:RecordType.OTS_RECORD>
10:29:41,828 ERROR [LogInterceptor] TransactionRolledbackException in method: public abstract void de.mydomain.testclasses.tx2pc.ejb.interfaces.TxXchgServiceEjbFassade.xchgVerein(int,int,de.mydomain.testclasses.tx2pc.TxParam) throws de.mydomain.testclasses.txapp.exception.MyDataAccessException,java.rmi.RemoteException, causedBy:
javax.transaction.RollbackException
at com.arjuna.ats.internal.jta.transaction.jts.TransactionImple.commit(TransactionImple.java:261)
at org.jboss.ejb.plugins.TxInterceptorCMT.endTransaction(TxInterceptorCMT.java:486)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:346)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:166)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:153)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:624)
at org.jboss.ejb.Container.invoke(Container.java:873)
at sun.reflect.GeneratedMethodAccessor193.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPInvoker.java:805)
at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:406)
at sun.reflect.GeneratedMethodAccessor192.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
at sun.rmi.transport.Transport$1.run(Transport.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:536)
Server 2:
10:29:41,625 WARN [loggerI18N] [com.arjuna.ats.internal.jts.context.genfail] ContextManager caught exception: org.omg.CORBA.OBJECT_NOT_EXIST: vmcid: 0x0 minor code: 0 completed: No
10:29:41,625 WARN [loggerI18N] [com.arjuna.ats.internal.jts.orbspecific.jacorb.interceptors.context.srie] ContextServerRequestInterceptorImpl::send_reply caught an unexpected exception: org.omg.CORBA.UNKNOWN: org.omg.CORBA.OBJECT_NOT_EXIST: vmcid: 0x0 minor code: 0 completed: No vmcid: 0x0 minor code: 0 completed: No
10:29:41,640 WARN [loggerI18N] [com.arjuna.ats.internal.jts.orbspecific.coordinator.generror] ArjunaTransactionImple.doBeforeCompletion caught exception: org.omg.CORBA.UNKNOWN: Server-side Exception: org.omg.CORBA.OBJECT_NOT_EXIST: vmcid: 0x0 minor code: 0 completed: No vmcid: 0x0 minor code: 0 completed: No
10:29:41,671 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_43] - Transaction a2b026f:1064:44698a0c:e4 marked as rollback only. Will abort.
10:29:41,671 ERROR [controller] rid: 4 opname: prepare invocation: throwable was thrown (java.lang.NullPointerException)
java.lang.NullPointerException
at com.arjuna.ats.internal.jts.orbspecific.interposition.resources.arjuna.ServerTopLevelAction.rollback(ServerTopLevelAction.java:325)
at com.arjuna.ats.internal.jts.orbspecific.interposition.resources.arjuna.ServerTopLevelAction.prepare(ServerTopLevelAction.java:254)
at org.omg.CosTransactions.ResourcePOATie.prepare(ResourcePOATie.java:64)
at org.omg.CosTransactions.ResourcePOA._invoke(ResourcePOA.java:100)
at org.jacorb.poa.RequestProcessor.invokeOperation(RequestProcessor.java:299)
at org.jacorb.poa.RequestProcessor.process(RequestProcessor.java:593)
at org.jacorb.poa.RequestProcessor.run(RequestProcessor.java:735)
10:29:41,718 ERROR [controller] rid: 10 opname: rollback invocation: throwable was thrown (java.lang.NullPointerException)
java.lang.NullPointerException
at com.arjuna.ats.internal.jts.orbspecific.interposition.resources.arjuna.ServerTopLevelAction.rollback(ServerTopLevelAction.java:325)
at org.omg.CosTransactions.ResourcePOATie.rollback(ResourcePOATie.java:54)
at org.omg.CosTransactions.ResourcePOA._invoke(ResourcePOA.java:47)
at org.jacorb.poa.RequestProcessor.invokeOperation(RequestProcessor.java:299)
at org.jacorb.poa.RequestProcessor.process(RequestProcessor.java:593)
at org.jacorb.poa.RequestProcessor.run(RequestProcessor.java:735)
Using the interposition interceptor and jacorb 2.2.1 patch 1 my transactions are processed as expected. No error occurs.
I can configure the interceptor in the jacorb.properties file or in the iiop-services.xml file. The CachedConnectionManager does not try to close my connections. ( if debug is enabled )
Unfortunately my testapp is no stand-alone testcase. It is a complete demo application, using hibernate for persistence and spring to encapsulate session beans. -
17. Re: java.lang.OutOfMemoryError: Requested array size exceeds
marklittle May 16, 2006 8:33 AM (in response to paul.robinson)There are a couple of things.
"peter_p" wrote:
10:29:41,828 ERROR [LogInterceptor] TransactionRolledbackException in method: public abstract void de.mydomain.testclasses.tx2pc.ejb.interfaces.TxXchgServiceEjbFassade.xchgVerein(int,int,de.mydomain.testclasses.tx2pc.TxParam) throws de.mydomain.testclasses.txapp.exception.MyDataAccessException,java.rmi.RemoteException, causedBy:
javax.transaction.RollbackException
Do you at any point mark the transaction for rollback yourself? Do you know if any transaction related timeouts are going off?
Using the interposition interceptor and jacorb 2.2.1 patch 1 my transactions are processed as expected. No error occurs.
I can configure the interceptor in the jacorb.properties file or in the iiop-services.xml file. The CachedConnectionManager does not try to close my connections. ( if debug is enabled )
I'm not quite sure I understand. You can get it to work with the JacORB patch supplied? -
18. Re: java.lang.OutOfMemoryError: Requested array size exceeds
marklittle May 16, 2006 9:01 AM (in response to paul.robinson)Also, if you can't provide a stand-alone test case, would it be possible to attach a debugger and get more information?
-
19. Re: java.lang.OutOfMemoryError: Requested array size exceeds
peter_p May 16, 2006 10:15 AM (in response to paul.robinson)Thank you for your quick reply.
Do you at any point mark the transaction for rollback yourself? Do you know if any transaction related timeouts are going off?
No, I did not mark the transaction for rollback and the whole TX can be processed in less than 1 second. I haven't modified any TX-timing
parameters and have no idl-timout tag in my datasource deployment descriptors.You can get it to work with the JacORB patch supplied?
Yes, my sample works without any problems if I configure the interposition interceptor, as shown below. (iiop-service.xml)
The OutOfMemory Exception will disappear using the new ORB and interposition.<mbean code="org.jboss.iiop.CorbaORBService" name="jboss:service=CorbaORB"> <attribute name="ORBClass">org.jacorb.orb.ORB</attribute> <attribute name="ORBSingletonClass">org.jboss.system.ORBSingleton</attribute> <attribute name="ORBSingletonDelegate">org.jacorb.orb.ORBSingleton</attribute> <attribute name="ORBPropertiesFileName">jacorb.properties</attribute> <!-- uncomment the attribute below to interoperate with IONA's ASP 6.0 <attribute name="SendSASAcceptWithExceptionEnabled">false</attribute> --> <attribute name="PortableInterceptorInitializers"> <interceptor-initializers> <!-- the two initializers below are required - do not remove them --> <initializer>org.jboss.iiop.codebase.CodebaseInterceptorInitializer</initializer> <initializer>org.jboss.iiop.csiv2.CSIv2Initializer</initializer> <!-- comment out to generate IORs with no transaction policy info --> <initializer>org.jboss.tm.iiop.TxIORInterceptorInitializer</initializer> <!-- JBoss TS interceptor --> <!--initializer>com.arjuna.ats.jts.orbspecific.jacorb.interceptors.context.ContextORBInitializerImpl</initializer--> <initializer>com.arjuna.ats.jts.orbspecific.jacorb.interceptors.interposition.InterpositionORBInitializerImpl</initializer> <!-- comment out to disable the Security Attribute Service --> <initializer>org.jboss.iiop.csiv2.SASInitializer</initializer> </interceptor-initializers> </attribute> <!-- uncomment to use IIOP over SSL <attribute name="SecurityDomain">java:/jaas/IIOP+SSL</attribute> <depends>jboss.security:service=JaasSecurityDomain,domain=IIOP+SSL</depends> --> </mbean>
If I change the xml-comment and activate the context.ContextORBInitializerImpl Interceptor then the exceptions, I described in my last posting, will occur.
( even in the version 2.2.1 patch 1 of the java ORB )
I posted this stacktrace because of your last statement:Using the context interceptor versus the interposition interceptor should make no difference to the outcome of your transactions.
In my demo - application, the TX will be rolled back, if I use context interception.
Attaching a debugger ( Eclipse ) to both server is no problem. -
20. Re: java.lang.OutOfMemoryError: Requested array size exceeds
marklittle May 16, 2006 10:25 AM (in response to paul.robinson)"peter_p" wrote:
Thank you for your quick reply.
No problem.Do you at any point mark the transaction for rollback yourself? Do you know if any transaction related timeouts are going off?
No, I did not mark the transaction for rollback and the whole TX can be processed in less than 1 second. I haven't modified any TX-timing
parameters and have no idl-timout tag in my datasource deployment descriptors.
OK, thanks.You can get it to work with the JacORB patch supplied?
Yes, my sample works without any problems if I configure the interposition interceptor, as shown below. (iiop-service.xml)
The OutOfMemory Exception will disappear using the new ORB and interposition.<mbean code="org.jboss.iiop.CorbaORBService" name="jboss:service=CorbaORB"> <attribute name="ORBClass">org.jacorb.orb.ORB</attribute> <attribute name="ORBSingletonClass">org.jboss.system.ORBSingleton</attribute> <attribute name="ORBSingletonDelegate">org.jacorb.orb.ORBSingleton</attribute> <attribute name="ORBPropertiesFileName">jacorb.properties</attribute> <!-- uncomment the attribute below to interoperate with IONA's ASP 6.0 <attribute name="SendSASAcceptWithExceptionEnabled">false</attribute> --> <attribute name="PortableInterceptorInitializers"> <interceptor-initializers> <!-- the two initializers below are required - do not remove them --> <initializer>org.jboss.iiop.codebase.CodebaseInterceptorInitializer</initializer> <initializer>org.jboss.iiop.csiv2.CSIv2Initializer</initializer> <!-- comment out to generate IORs with no transaction policy info --> <initializer>org.jboss.tm.iiop.TxIORInterceptorInitializer</initializer> <!-- JBoss TS interceptor --> <!--initializer>com.arjuna.ats.jts.orbspecific.jacorb.interceptors.context.ContextORBInitializerImpl</initializer--> <initializer>com.arjuna.ats.jts.orbspecific.jacorb.interceptors.interposition.InterpositionORBInitializerImpl</initializer> <!-- comment out to disable the Security Attribute Service --> <initializer>org.jboss.iiop.csiv2.SASInitializer</initializer> </interceptor-initializers> </attribute> <!-- uncomment to use IIOP over SSL <attribute name="SecurityDomain">java:/jaas/IIOP+SSL</attribute> <depends>jboss.security:service=JaasSecurityDomain,domain=IIOP+SSL</depends> --> </mbean>
If I change the xml-comment and activate the context.ContextORBInitializerImpl Interceptor then the exceptions, I described in my last posting, will occur.
( even in the version 2.2.1 patch 1 of the java ORB )
OK, so that's good to know. At least there's a route for you to make forward progress if we can't figure this out in the short term.
I posted this stacktrace because of your last statement:Using the context interceptor versus the interposition interceptor should make no difference to the outcome of your transactions.
In my demo - application, the TX will be rolled back, if I use context interception.
Attaching a debugger ( Eclipse ) to both server is no problem. -
21. Re: java.lang.OutOfMemoryError: Requested array size exceeds
marklittle May 17, 2006 9:23 AM (in response to paul.robinson)One thing you might want to check is how Hibernate gets its reference to the transaction service. Hopefully it's via JNDI, but if it's not then it may be trying to use the old JBoss transaction service implementation at the same time as JBossTS.