Concurrency Issue : J2ee Application

Hi,
Ours is a J2ee Web Application, Where in we have maintenance screens (for doing CRUD(Create-Read-Update-Delete) operations) for each entity. Each entity has a business key which identifies that entity uniquely. So, from the Create screen, if I try to create a record with the same business key, it should say Object already exists. So, before we create a record, first we search for it using the business key. If we get any results for the search criteria, we will say, Object already exists else we will create the record.
Now the problem is, When we try to create two records with the same business key from two different screens. We open two browsers, and create a record with the same business key from two screens. Both the records are getting created. As per our analysis, What happens is, the search operation in both the screens is being done simultaneously, so, both the search operations does not return any result because of which both the records are getting created. If the record is created between the both search operations, then one thread sees the created record and says object already exists.
It would be of great help if you can give us the pointers in solving this concurrency issue. We are using EJB's in our project. Does changing the Isolation Level of the create and search methods help us?
Thanks & Regards,
Yong-Loh

search for the record right before you try to insert a new one; if another user inserted one while the user was busy typing, you'll catch it then. If you want to prevent 100% of the time that you don't get duplicate entries because of the rare occurrence that two people insert the exact same data at exactly the same time, figure out which fields uniquely identify a record (besides the ID) and put a unique constraint on them.
Note: that whole story was far from a clear description or question; you may want to narrow it down to a more compact description if I my answer doesn't help you.

Similar Messages

  • Known concurrency issues around refreshObject

    Hi
    We are using Toplink 10.1.3 within 10gAS 10.1.3.
    We use ORA_ROWSCN as the version number field within our Optimistic Locking Policy, which Oracle does not populate until the transaction commits.
    Therefore we added a PostCommitEventListener.postCommitUnitOfWork method to refresh the objects prior to returning after an update. Otherwise we found that the objects in the cache, and those returned to our client tier, did not have the updated SCN.
    This works fine... BUT we have just found a concurrency issue that we believe may be related to this.
    If two Units Of Work are simultaneously attempting to update the same object instance this allows the possibility of the second Unit Of Work committing it's change whilst the first is still refreshing, after which something goes wrong, and subsequent attempts to access the object appear to hang, which is ultimately reported by the Oracle HTTP Server as a timeout.
    We are trying to recreate this within an automated test which may further enlighten us.
    Two questions:
    1. Are there any known concurrency issues with mutiple Units of Work calling refreshObject on the same object?
    2. Can anyone suggest a less expensive method of ensuring that the version number within our domain objects, gets updated with the ORA_ROWSCN after the commit?
    As always, any help appreciated.
    Will post further as analysis contimues.
    Marc
    Edited by: user6568216 on 25-Sep-2008 09:56

    Thanks for the reply.
    Are you saying that the cause of the issue is the use of the postCommitEventListener to refresh the objects?
    Currently, the use of a version number field rather than ORA_ROWSCN is not an option, mainly because we have many update procedures that don't go via the Toplink Cache, and would therefore need amending to increment the version number fields or use triggers (current not seen as ideal due to batch issues). As we have more than 1000 tables, this is not feasible within the current release lifecycle of our product.
    I attahc the complete thread dump, but this has been generated as a thread dump from the OC4J instance, as the application just hangs and eventually generates a time out.
    Is there anything we can do to mitigate against this issue?
    Many Thanks
    Marc
    Thread Dump:
    Full thread dump Java HotSpot(TM) Client VM (1.5.0_15-b04 mixed mode):
    "ApplicationServerThread-1" prio=6 tid=0x532e27e0 nid=0xf10 waiting for monitor entry [0x5517d000..0x5517fd68]
         at java.util.Vector.size(Vector.java:270)
         - waiting to lock <0x08761fb0> (a java.util.Vector)
         at oracle.toplink.internal.queryframework.CollectionContainerPolicy.sizeFor(CollectionContainerPolicy.java:164)
         at oracle.toplink.mappings.CollectionMapping.mergeIntoObject(CollectionMapping.java:899)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeIntoObject(ObjectBuilder.java:2095)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfOriginalIntoWorkingCopy(MergeManager.java:534)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:228)
         at oracle.toplink.mappings.CollectionMapping.mergeIntoObject(CollectionMapping.java:913)
         - locked <0x08761f50> (a java.util.Vector)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeIntoObject(ObjectBuilder.java:2095)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfOriginalIntoWorkingCopy(MergeManager.java:534)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:228)
         at oracle.toplink.mappings.CollectionMapping.mergeIntoObject(CollectionMapping.java:913)
         - locked <0x087626f8> (a java.util.Vector)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeIntoObject(ObjectBuilder.java:2095)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfOriginalIntoWorkingCopy(MergeManager.java:534)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:228)
         at oracle.toplink.mappings.CollectionMapping.mergeIntoObject(CollectionMapping.java:913)
         - locked <0x08762e70> (a java.util.Vector)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeIntoObject(ObjectBuilder.java:2095)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfOriginalIntoWorkingCopy(MergeManager.java:534)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:228)
         at oracle.toplink.mappings.CollectionMapping.mergeIntoObject(CollectionMapping.java:913)
         - locked <0x0863b600> (a java.util.Vector)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeIntoObject(ObjectBuilder.java:2095)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfOriginalIntoWorkingCopy(MergeManager.java:534)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:228)
         at oracle.toplink.mappings.ObjectReferenceMapping.mergeIntoObject(ObjectReferenceMapping.java:392)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeIntoObject(ObjectBuilder.java:2095)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfOriginalIntoWorkingCopy(MergeManager.java:534)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:228)
         at oracle.toplink.mappings.ObjectReferenceMapping.mergeIntoObject(ObjectReferenceMapping.java:392)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeIntoObject(ObjectBuilder.java:2095)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfOriginalIntoWorkingCopy(MergeManager.java:534)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:228)
         at oracle.toplink.mappings.ObjectReferenceMapping.mergeIntoObject(ObjectReferenceMapping.java:392)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeIntoObject(ObjectBuilder.java:2095)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfOriginalIntoWorkingCopy(MergeManager.java:534)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:228)
         at oracle.toplink.publicinterface.UnitOfWork.revertObject(UnitOfWork.java:4034)
         at oracle.toplink.publicinterface.UnitOfWork.revertObject(UnitOfWork.java:4010)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.registerIndividualResult(ObjectLevelReadQuery.java:1727)
         at oracle.toplink.internal.descriptors.ObjectBuilder.buildWorkingCopyCloneNormally(ObjectBuilder.java:449)
         at oracle.toplink.internal.descriptors.ObjectBuilder.buildObjectInUnitOfWork(ObjectBuilder.java:413)
         at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:376)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:451)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.registerIndividualResult(ObjectLevelReadQuery.java:1701)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.conformIndividualResult(ObjectLevelReadQuery.java:615)
         at oracle.toplink.queryframework.ReadObjectQuery.conformResult(ReadObjectQuery.java:321)
         at oracle.toplink.queryframework.ReadObjectQuery.registerResultInUnitOfWork(ReadObjectQuery.java:586)
         at oracle.toplink.queryframework.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:403)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:800)
         at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:603)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:768)
         at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java:370)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:825)
         at oracle.toplink.publicinterface.UnitOfWork.internalExecuteQuery(UnitOfWork.java:2532)
         at oracle.toplink.publicinterface.Session.executeQuery(Session.java:981)
         at oracle.toplink.publicinterface.Session.executeQuery(Session.java:938)
         at oracle.toplink.publicinterface.Session.refreshAndLockObject(Session.java:2564)
         at oracle.toplink.publicinterface.Session.refreshObject(Session.java:2575)
         at aquila.administrator.server.PostCommitEventListener.postCommitUnitOfWork(PostCommitEventListener.java:67)
         at oracle.toplink.sessions.SessionEventManager.postCommitUnitOfWork(SessionEventManager.java:277)
         at oracle.toplink.publicinterface.UnitOfWork.commit(UnitOfWork.java:867)
         at org.springframework.orm.toplink.TopLinkTransactionManager.doCommit(TopLinkTransactionManager.java:385)
         at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:709)
         at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:678)
         at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321)
         at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy66.createNewTemplateVersion(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
         at org.springframework.remoting.support.RemoteInvocationTraceInterceptor.invoke(RemoteInvocationTraceInterceptor.java:70)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy211.createNewTemplateVersion(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at org.springframework.remoting.support.RemoteInvocation.invoke(RemoteInvocation.java:205)
         at org.springframework.remoting.support.DefaultRemoteInvocationExecutor.invoke(DefaultRemoteInvocationExecutor.java:38)
         at org.springframework.remoting.support.RemoteInvocationBasedExporter.invoke(RemoteInvocationBasedExporter.java:78)
         at org.springframework.remoting.support.RemoteInvocationBasedExporter.invokeAndCreateResult(RemoteInvocationBasedExporter.java:114)
         at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:74)
         at aquila.administrator.platform.server.httpinvoker.AquilaHttpInvokerServiceExporter.handleRequest(AquilaHttpInvokerServiceExporter.java:77)
         at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:49)
         at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
         at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
         at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
         at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
         at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
         at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
         at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
         at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
         at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
         at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
         at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
         at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
         at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
         at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
         at org.acegisecurity.securechannel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:138)
         at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
         at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
         at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:629)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:376)
         at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:870)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451)
         at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:218)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:119)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:230)
         at oracle.oc4j.network.ServerSocketAcceptHandler.access$800(ServerSocketAcceptHandler.java:33)
         at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:831)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    "ApplicationServerThread-0" prio=6 tid=0x52fe0d88 nid=0xd2c waiting for monitor entry [0x53b8d000..0x53b8f9e8]
         at java.util.Vector.size(Vector.java:270)
         - waiting to lock <0x0863b600> (a java.util.Vector)
         at oracle.toplink.internal.queryframework.CollectionContainerPolicy.sizeFor(CollectionContainerPolicy.java:164)
         at oracle.toplink.mappings.CollectionMapping.mergeIntoObject(CollectionMapping.java:899)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeIntoObject(ObjectBuilder.java:2095)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfOriginalIntoWorkingCopy(MergeManager.java:534)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:228)
         at oracle.toplink.mappings.ObjectReferenceMapping.mergeIntoObject(ObjectReferenceMapping.java:392)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeIntoObject(ObjectBuilder.java:2095)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfOriginalIntoWorkingCopy(MergeManager.java:534)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:228)
         at oracle.toplink.mappings.ObjectReferenceMapping.mergeIntoObject(ObjectReferenceMapping.java:392)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeIntoObject(ObjectBuilder.java:2095)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfOriginalIntoWorkingCopy(MergeManager.java:534)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:228)
         at oracle.toplink.mappings.ObjectReferenceMapping.mergeIntoObject(ObjectReferenceMapping.java:392)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeIntoObject(ObjectBuilder.java:2095)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfOriginalIntoWorkingCopy(MergeManager.java:534)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:228)
         at oracle.toplink.mappings.CollectionMapping.mergeIntoObject(CollectionMapping.java:913)
         - locked <0x08761fb0> (a java.util.Vector)
         at oracle.toplink.internal.descriptors.ObjectBuilder.mergeIntoObject(ObjectBuilder.java:2095)
         at oracle.toplink.internal.sessions.MergeManager.mergeChangesOfOriginalIntoWorkingCopy(MergeManager.java:534)
         at oracle.toplink.internal.sessions.MergeManager.mergeChanges(MergeManager.java:228)
         at oracle.toplink.publicinterface.UnitOfWork.revertObject(UnitOfWork.java:4034)
         at oracle.toplink.publicinterface.UnitOfWork.revertObject(UnitOfWork.java:4010)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.registerIndividualResult(ObjectLevelReadQuery.java:1727)
         at oracle.toplink.internal.descriptors.ObjectBuilder.buildWorkingCopyCloneNormally(ObjectBuilder.java:449)
         at oracle.toplink.internal.descriptors.ObjectBuilder.buildObjectInUnitOfWork(ObjectBuilder.java:413)
         at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:376)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:451)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.registerIndividualResult(ObjectLevelReadQuery.java:1701)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.conformIndividualResult(ObjectLevelReadQuery.java:615)
         at oracle.toplink.queryframework.ReadObjectQuery.conformResult(ReadObjectQuery.java:321)
         at oracle.toplink.queryframework.ReadObjectQuery.registerResultInUnitOfWork(ReadObjectQuery.java:586)
         at oracle.toplink.queryframework.ReadObjectQuery.executeObjectLevelReadQuery(ReadObjectQuery.java:403)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:800)
         at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:603)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:768)
         at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java:370)
         at oracle.toplink.queryframework.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:825)
         at oracle.toplink.publicinterface.UnitOfWork.internalExecuteQuery(UnitOfWork.java:2532)
         at oracle.toplink.publicinterface.Session.executeQuery(Session.java:981)
         at oracle.toplink.publicinterface.Session.executeQuery(Session.java:938)
         at oracle.toplink.publicinterface.Session.refreshAndLockObject(Session.java:2564)
         at oracle.toplink.publicinterface.Session.refreshObject(Session.java:2575)
         at aquila.administrator.server.PostCommitEventListener.postCommitUnitOfWork(PostCommitEventListener.java:67)
         at oracle.toplink.sessions.SessionEventManager.postCommitUnitOfWork(SessionEventManager.java:277)
         at oracle.toplink.publicinterface.UnitOfWork.commit(UnitOfWork.java:867)
         at org.springframework.orm.toplink.TopLinkTransactionManager.doCommit(TopLinkTransactionManager.java:385)
         at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:709)
         at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:678)
         at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321)
         at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy66.createNewTemplateVersion(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
         at org.springframework.remoting.support.RemoteInvocationTraceInterceptor.invoke(RemoteInvocationTraceInterceptor.java:70)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy211.createNewTemplateVersion(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at org.springframework.remoting.support.RemoteInvocation.invoke(RemoteInvocation.java:205)
         at org.springframework.remoting.support.DefaultRemoteInvocationExecutor.invoke(DefaultRemoteInvocationExecutor.java:38)
         at org.springframework.remoting.support.RemoteInvocationBasedExporter.invoke(RemoteInvocationBasedExporter.java:78)
         at org.springframework.remoting.support.RemoteInvocationBasedExporter.invokeAndCreateResult(RemoteInvocationBasedExporter.java:114)
         at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:74)
         at aquila.administrator.platform.server.httpinvoker.AquilaHttpInvokerServiceExporter.handleRequest(AquilaHttpInvokerServiceExporter.java:77)
         at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:49)
         at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
         at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
         at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
         at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
         at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
         at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
         at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
         at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
         at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
         at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
         at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
         at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
         at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
         at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
         at org.acegisecurity.securechannel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:138)
         at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
         at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
         at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:629)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:376)
         at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:870)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451)
         at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:218)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:119)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    "DestroyJavaVM" prio=6 tid=0x00035590 nid=0xb34 waiting on condition [0x00000000..0x0007fae8]
    "TaskManager" prio=6 tid=0x53700d48 nid=0xfb4 waiting on condition [0x5513f000..0x5513fa68]
         at java.lang.Thread.sleep(Native Method)
         at com.evermind.util.TaskManager.run(TaskManager.java:245)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
         at java.lang.Thread.run(Thread.java:595)
    "Store userCache Spool Thread" daemon prio=2 tid=0x537ab3c0 nid=0x50c waiting on condition [0x550ff000..0x550ffae8]
         at java.lang.Thread.sleep(Native Method)
         at net.sf.ehcache.store.DiskStore.spoolAndExpiryThreadMain(DiskStore.java:573)
         at net.sf.ehcache.store.DiskStore.access$800(DiskStore.java:65)
         at net.sf.ehcache.store.DiskStore$SpoolAndExpiryThread.run(DiskStore.java:1057)
    "ApplicationServerThread-7" prio=6 tid=0x52fe1520 nid=0x854 runnable [0x540bf000..0x540bfb68]
         at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
         at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:275)
         at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:257)
         at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:138)
         at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
         - locked <0x06bf5b98> (a sun.nio.ch.Util$1)
         - locked <0x06bf5b88> (a java.util.Collections$UnmodifiableSet)
         - locked <0x06bf48d8> (a sun.nio.ch.WindowsSelectorImpl)
         at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
         at oracle.oc4j.network.NIOServerSocketDriver.select(NIOServerSocketDriver.java:195)
         at oracle.oc4j.network.NIOServerSocketDriver.run(NIOServerSocketDriver.java:150)
         at com.evermind.server.http.HttpConnectionListener.run(HttpConnectionListener.java:271)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
         at java.lang.Thread.run(Thread.java:595)
    "ApplicationServerThread-6" prio=6 tid=0x5301d7f0 nid=0xda0 runnable [0x5407f000..0x5407fbe8]
         at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
         at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)
         - locked <0x06bf8890> (a java.lang.Object)
         at sun.nio.ch.ServerSocketAdaptor.accept(ServerSocketAdaptor.java:84)
         - locked <0x06bf8870> (a java.lang.Object)
         at oracle.oc4j.network.ServerSocketAcceptHandler$BImpl.run(ServerSocketAcceptHandler.java:666)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
         at java.lang.Thread.run(Thread.java:595)
    "ApplicationServerThread-5" prio=6 tid=0x52fc31d8 nid=0xda4 waiting on condition [0x5403f000..0x5403fc68]
         at java.lang.Thread.sleep(Native Method)
         at oracle.as.j2ee.transaction.tpc.recovery.RecoveryManager.run(RecoveryManager.java:358)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:814)
         at java.lang.Thread.run(Thread.java:595)
    "Timer-3" prio=6 tid=0x52fc5ef8 nid=0x860 in Object.wait() [0x53fff000..0x53fffce8]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x06b59c08> (a java.util.TaskQueue)
         at java.util.TimerThread.mainLoop(Timer.java:509)
         - locked <0x06b59c08> (a java.util.TaskQueue)
         at java.util.TimerThread.run(Timer.java:462)
    "Timer-2" prio=6 tid=0x52fc9a08 nid=0xefc in Object.wait() [0x53fbf000..0x53fbfd68]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x06b16268> (a java.util.TaskQueue)
         at java.util.TimerThread.mainLoop(Timer.java:509)
         - locked <0x06b16268> (a java.util.TaskQueue)
         at java.util.TimerThread.run(Timer.java:462)
    "WorkExecutorWorkerThread-1" daemon prio=6 tid=0x53166c38 nid=0xe3c in Object.wait() [0x53f7f000..0x53f7fa68]
         at java.lang.Object.wait(Native Method)
         - waiting on <0x06c76838> (a java.lang.Object)
         at oracle.j2ee.ra.jms.generic.WorkConsumer.doReceive(WorkConsumer.java:995)
         - locked <0x06c76838> (a java.lang.Object)
         at oracle.j2ee.ra.jms.generic.WorkConsumer.run(WorkConsumer.java:215)
         - locked <0x06c766f0> (a oracle.j2ee.ra.jms.generic.WorkConsumer)
         at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
         at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
         at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:819)
         at java.lang.Thread.run(Thread.java:595)
    Continued on next post

  • Is anyone doing disaster recovery for a J2EE application?

    We generally use database log shipping to maintain a standby database for our ABAP instances.  We can successfully fail over our production application to our disaster recovery site with no real issues.  With the J2EE instances (EP, ESS/MSS, BI, etc), we have a few concerns:
    hostname cannot change, without going through a system copy procedure, so we would have to keep the hostnames in DR the same. (for example, ref: oss note 757692 - changing hostname is not supported)
    fully qualified domain name - from what I understand, there are potentially issues with changing the fqdn, for example SSO certificates, BSPs, XI has issues, etc.
    we can't keep both hostname and fqdn the same between DR and production, or we could never do a DR test.
    Has anyone implemented disaster recovery for any SAP J2EE application that has run into these concerns and addressed them?  Input would be greatly appreciated regarding how you addressed these issues, or how you architected your disaster recovery implementation.
    Regards,
    David Hull
    The Walt Disney Company

    I haven't done this personally, but I do have some experience with these issues in different HA environments.
    To your first point:  You can change the hostname, note 757692 tells you exactly how to do it.  However like the note says, "Changing the name of a host server in a production system is not automatically supported by SAP."  When it says "supported by SAP" I think it means SAP the company, not SAP's software.  So I would contact SAP to see if this configuration would be covered under your service agreement.  Then you have to think about whether you want to do something that isn't "officially supported" by SAP.  Also I'm sure you'll need some kind of additional licensing for the DR systems as their hardware keys will de different.
    To your second point:  As for SSO certs (SAP Login Tickets), I think they should still work as long as the SID and client number of the issuing system remain the same.  I don't think they are hostname or fqdn dependant.  For BSPs I would think they would still work as long as they use relative paths rather than absolute paths.  And for XI... I have no idea what kind of issues may arise, I'm not an XI guy.
    Again, I haven't done what you're describing myself.  This is just based on my HA experiences.
    Hope this helps a little,
    Glenn

  • JNDI lookup fails in a thread created by J2EE application on WAS 8.0.0.4 running on Red Hat Enterprise Server 5.8(2.6.18-308.e15).

    I am using Jackrabbit Repository (jcr's implementation) as backend in my Web Appl.Whose data persists on Oracle Database. To make connection with Oracle database jackrabbit provide provision of JNDI Lookup to read the data source defined in WAS (using WAS 8.0.0.4 as App Server).
    I am able to perform JNDI Lookup everywhere in my application,But in a flow where i am creating a Thread using Java Concurrent Api and insidethread's call() method when I am trying for JNDI Look following exception occurs –
    [8/20/13 10:57:35:163 IST] 000000dd System Out     O ERROR 20-08 10:57:35,163 (DatabaseFileSystem.java:init:209)            failed to initialize file system
    javax.jcr.RepositoryException: JNDI name not found: java:comp/env/jdbc/ofsds
    at org.apache.jackrabbit.core.util.db.ConnectionFactory.getJndiDataSource(ConnectionFactory.java:295)
    at org.apache.jackrabbit.core.util.db.ConnectionFactory.createDataSource(ConnectionFactory.java:233)
    at org.apache.jackrabbit.core.util.db.ConnectionFactory.getDataSource(ConnectionFactory.java:166)
    at org.apache.jackrabbit.core.fs.db.DbFileSystem.getDataSource(DbFileSystem.java:226)
    at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:190)
    at org.apache.jackrabbit.core.config.RepositoryConfigurationParser$6.getFileSystem(RepositoryConfigurationParser.java:1057)
    at org.apache.jackrabbit.core.config.RepositoryConfig.getFileSystem(RepositoryConfig.java:911)
    at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:285)
    at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:605)
    at org.apache.jackrabbit.core.TransientRepository$2.getRepository(TransientRepository.java:232)
    at org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:280)
    at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:376)
    at com.mmpnc.icm.server.repository.RepositoryStartupService.newSession(RepositoryStartupService.java:408)
    at com.mmpnc.icm.server.repository.RepositoryStartupService.newSession(RepositoryStartupService.java:355)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
    at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
    at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
    at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
    at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
    at com.mmpnc.icm.server.repository.RepositoryStartupService_$$_javassist_1.newSession(RepositoryStartupService_$$_javassist_1.java)
    at com.mmpnc.icm.server.repository.ICMHouseKeepingSessionManager.create(ICMHouseKeepingSessionManager.java:37)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
    at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
    at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:77)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
    at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
    at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
    at com.mmpnc.icm.server.repository.ICMHouseKeepingSessionManager_$$_javassist_8.create(ICMHouseKeepingSessionManager_$$_javassist_8.java)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
    at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:138)
    at org.jboss.seam.Component.callComponentMethod(Component.java:2171)
    at org.jboss.seam.Component.callCreateMethod(Component.java:2094)
    at org.jboss.seam.Component.newInstance(Component.java:2054)
    at org.jboss.seam.Component.getInstance(Component.java:1948)
    at org.jboss.seam.Component.getInstance(Component.java:1910)
    at org.jboss.seam.Component.getInstance(Component.java:1904)
    at org.jboss.seam.Component.getInstanceInAllNamespaces(Component.java:2271)
    at org.jboss.seam.Component.getValueToInject(Component.java:2223)
    at org.jboss.seam.Component.injectAttributes(Component.java:1663)
    at org.jboss.seam.Component.inject(Component.java:1481)
    at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:61)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
    at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
    at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
    at com.mmpnc.icm.server.repository.ICMHouseKeepingRepository_$$_javassist_7.create(ICMHouseKeepingRepository_$$_javassist_7.java)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
    at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:138)
    at org.jboss.seam.Component.callComponentMethod(Component.java:2171)
    at org.jboss.seam.Component.callCreateMethod(Component.java:2094)
    at org.jboss.seam.Component.newInstance(Component.java:2054)
    at org.jboss.seam.Component.getInstance(Component.java:1948)
    at org.jboss.seam.Component.getInstance(Component.java:1910)
    at org.jboss.seam.Component.getInstance(Component.java:1904)
    at org.jboss.seam.Component.getInstanceInAllNamespaces(Component.java:2271)
    at org.jboss.seam.Component.getValueToInject(Component.java:2223)
    at org.jboss.seam.Component.injectAttributes(Component.java:1663)
    at org.jboss.seam.Component.inject(Component.java:1481)
    at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:61)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
    at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
    at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
    at com.mmpnc.icm.server.repository.ICMHouseKeepingManager_$$_javassist_6.create(ICMHouseKeepingManager_$$_javassist_6.java)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
    at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:138)
    at org.jboss.seam.Component.callComponentMethod(Component.java:2171)
    at org.jboss.seam.Component.callCreateMethod(Component.java:2094)
    at org.jboss.seam.Component.newInstance(Component.java:2054)
    at org.jboss.seam.Component.getInstance(Component.java:1948)
    at org.jboss.seam.Component.getInstance(Component.java:1910)
    at org.jboss.seam.Component.getInstance(Component.java:1904)
    at org.jboss.seam.Component.getInstance(Component.java:1899)
    at com.mmpnc.icm.server.concurrent.PerformCloseTask.call(PerformCloseTask.java:136)
    at com.mmpnc.icm.server.concurrent.PerformCloseTask.call(PerformCloseTask.java:1)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314)
    at java.util.concurrent.FutureTask.run(FutureTask.java:149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
    at java.lang.Thread.run(Thread.java:770)
    Caused by:
    javax.naming.ConfigurationException: A JNDI operation on a "java:" name cannot be completed because the server runtime is not able to associate the operation's thread with any J2EE application component.  This condition can occur when the JNDI client using the "java:" name is not executed on the thread of a server application request.  Make sure that a J2EE application does not execute JNDI operations on "java:" names within static code blocks or in threads created by that J2EE application.  Such code does not necessarily run on the thread of a server application request and therefore is not supported by JNDI operations on "java:" names. [Root exception is javax.naming.NameNotFoundException: Name comp/env/jdbc not found in context "java:".]
    at com.ibm.ws.naming.java.javaURLContextImpl.throwExceptionIfDefaultJavaNS(javaURLContextImpl.java:522)
    at com.ibm.ws.naming.java.javaURLContextImpl.throwConfigurationExceptionWithDefaultJavaNS(javaURLContextImpl.java:552)
    at com.ibm.ws.naming.java.javaURLContextImpl.lookupExt(javaURLContextImpl.java:481)
    at com.ibm.ws.naming.java.javaURLContextRoot.lookupExt(javaURLContextRoot.java:485)
    at com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:370)
    at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161)
    at javax.naming.InitialContext.lookup(InitialContext.java:436)
    at org.apache.jackrabbit.core.util.db.ConnectionFactory.getJndiDataSource(ConnectionFactory.java:280)
    ... 114 more
    Caused by:
    javax.naming.NameNotFoundException: Name comp/env/jdbc not found in context "java:".
    at com.ibm.ws.naming.ipbase.NameSpace.getParentCtxInternal(NameSpace.java:1969)
    at com.ibm.ws.naming.ipbase.NameSpace.retrieveBinding(NameSpace.java:1376)
    at com.ibm.ws.naming.ipbase.NameSpace.lookupInternal(NameSpace.java:1219)
    at com.ibm.ws.naming.ipbase.NameSpace.lookup(NameSpace.java:1141)
    at com.ibm.ws.naming.urlbase.UrlContextImpl.lookupExt(UrlContextImpl.java:1436)
    at com.ibm.ws.naming.java.javaURLContextImpl.lookupExt(javaURLContextImpl.java:477)
    ... 119 more

    Okay "damorgan", you seem to have me confused with a newbie. All I'm posting is the info that I got from my Sys Admin on the fix to my problem I encountered when trying to install Oracle 11g (11.2.0.0) on Red Hat Linux Enterprise 5. Since we're mouting onto an NFS, these are the steps he took. I'm not trying to "hide" information or post as little as possible. What other info do you want? I don't know what you are referring to when you mention "Filer, make, model, software version"? Please elaborate. I was just trying to post to others that may have encountered this problem, and I get somewhat attacked by you. I don't assume anyone can read my mind (especially you).

  • Double submission problem in J2EE application under Weblogic 8.1 SP2 server

    Hi,
    We are facing double submission problem in our J2EE application which is running under Weblogic 8.1 SP2 and for the same we already implemented or added the below preventive solutions.
    1. We disable the SUBMIT button once the user clicks it.
    2. We preventated pressing 'F5' button and clicking 'Refresh' button in the browser.
    3. Also we tried to prevent by declaring the idempotent is 'true' under weblogic-ejb-jar.xml as below.
    <stateless-bean-methods-are-idempotent>true</stateless-bean-methods-are-idempotent>
    So please somebody help us on this issue like how to prevent in some other way.
    Regards,
    Dinesh.

    I have no idea why you would think changing your EJB configuration would have anything to do with preventing double submission at your servlet layer.
    One technique I've seen for preventing double submission was first used in the Struts framework several years ago. When a page is "prepared" for display, a token value is created and stored in the session. The page is displayed with a hidden field containing that value. When the page is submitted, the value of the hidden field is compared with the value stored in the session. If they're not equal, the submission is ignored.

  • J2EE application after new start in "prepared" status

    Hi all,
    we have the problem with J2EE applications. After new start of WLS the application get "prepared" status.
    How can I find the reason of the issue?
    Regards,
    Moh

    Is this application ever came to active state?
    when you deployed this application intial there might be errors so it never went to active state
    when ever you did a restart the application is in prepared state.
    try to bring into active and see if your geeting any exceptions.

  • HELP!!! Cannot deploy J2EE application with Oracle JDBC driver...

    Hi,
    I am writing a J2EE application which (in theory, at least)
    connects to an Oracle 9i database.
    I have written a simple Java test app utilising only the
    java.sql package classes (e.g. Connection, ResultSet) to directly
    connect to the database. As long as the classes12.zip is in the
    CLASSPATH it works fine.
    Now I have written an Enterprise application (SessionBean,
    Remote and Home interface and Client) which I am attempting to
    deploy via deploytool.
    If I include just the client jar and EJB jar in the application
    it deploys okay but when I run the application (using runclient)
    it produces the following error:
    java.lang.NoClassDefFoundError: oracle/jdbc/OracleDriver
    (It is nested within other error output but that is the core
    issue).
    However if I try to include the JAR libraries into the app
    (classes12.jar and nls_charset.jar from $ORACLE_HOME/jdbc/lib),
    then I get the following output from deploytool when I hit the
    "deploy" (or "redeploy") button:
    Deployment error: invalid entry compressed size
    (expected 14411 but got 14580 bytes)
    Can someone please tell me what is going on???
    How can I deploy the J2EE application including the Oracle
    JDBC Driver???
    My only other option at the moment is to place all the function-
    -ality in the client and not use the J2EE framework.
    Any help is greatly appreciated.
    Regards,
    Ben New
    Leftclick Software Development
    [email protected]

    OK Ben,
    I admit I'm a bit confused. Let me see if I understand where you're
    coming from.
    You have written a J2EE application that includes a session bean,
    correct? If so, your session bean needs to be deployed to an EJB
    container. What container are you using? The Oracle 9i database
    has an embedded EJB container which (theoretically) you can use.
    However, as far as I know, Oracle recommends you use OC4J as the
    EJB container. So again I ask, what EJB container are you using?
    If, as you say, you are new to EJB, then I think you should
    immediately start working wiht OC4J as your EJB container.
    Did you look at the tutorial link I gave in my previous post? It
    explains -- step by step -- how to create, deploy and run a J2EE
    application using OC4J as the EJB container. It also has links to
    introductory material for people without little knowledge of J2EE
    and EJB.
    I have 9iAS Enterprise Edition and 8.1.7.1.0 database server (and
    OC4J) installed on my SUN machine. I cannot find any of the
    utilities you mention -- "j2eeadmin","runclient" or "deploytool".
    What Oracle software have you installed? What are the versions?
    What platform are you using?
    A J2EE application (according to the specification from SUN)
    consists of modules. A module can either be a client module or an
    EJB module. A client module can either be a java application client
    or a web-based client (servlet or JSP). A J2EE application usually
    contains one client module and one EJB module. A J2EE application
    needs to be deployed to a J2EE container.
    Hopefully the J2EE picture is becoming clearer. I think you need
    to read some introductory material regarding J2EE if you intend
    to become proficient at it.
    I feel that you are under the impression that a J2EE application
    is a glorified JDBC application. It isn't (as far as I'm aware).
    Good Luck,
    Avi.

  • Migrating 9iAS J2EE Applications to 10gAS

    Is my 9iAS(9.0.2) J2EE applications can be migrated to 10gAS(10.1.2) without any changes? If no what are the changes required in my applications (Programs).
    My Application consists of 9 War files and one DAD(which is pointing to Oracle DB for Some PL/SQL Stuff, i dont think which will cause any compatibility, bcoz we are planing to migrate the Application server only.).
    And I am interested on Linux platform.

    Error: java.lang.ClassNotFoundException: oracle.reports.jsp.ReportTagExtraInfo
    OK, this seems to be a classical usage issue of oracle report. See metalink note 270403.1 or this thread Re: Report Paramter on the Reports, which is, in fact, the right place to post questions and search for answers for reports related problems .
    Please tell me if this helps.

  • Can't start the J2EE applications

    Hello,
    I recently installed Oracle 10g on RHEL. After the installation was complete, I got the following links to access the various J2EE applications.
    iSQL*Plus URL:
    http://nmcerp:5560/isqlplus
    iSQL*Plus DBA URL:
    http://nmcerp:5560/isqlplus/dba
    Enterprise Manager 10g Database Control URL:
    http://nmcerp:1158/em
    I restarted the machine. And then suddenly it stopped working. It's failing to connect. What may be the issue and hoe can I solve it?
    Thanks.

    user9946251 wrote:
    Hello,
    I recently installed Oracle 10g on RHEL. After the installation was complete, I got the following links to access the various J2EE applications.
    iSQL*Plus URL:
    http://nmcerp:5560/isqlplus
    iSQL*Plus DBA URL:
    http://nmcerp:5560/isqlplus/dba
    Enterprise Manager 10g Database Control URL:
    http://nmcerp:1158/em
    I restarted the machine. And then suddenly it stopped working. It's failing to connect. What may be the issue and hoe can I solve it?
    Thanks.
    >Hello,
    I recently installed Oracle 10g on RHEL. After the installation was complete, I got the following links to access the various J2EE applications.
    iSQL*Plus URL:
    http://nmcerp:5560/isqlplus
    iSQL*Plus DBA URL:
    http://nmcerp:5560/isqlplus/dba
    Enterprise Manager 10g Database Control URL:
    http://nmcerp:1158/em
    I restarted the machine. And then suddenly it stopped working. It's failing to connect. What may be the issue and hoe can I solve it?
    Thanks.
    You have to start isqlplus and dbcontrol as
    $ORACLE_HOME/bin/./isqlplusctl start
    export ORACLE_SID=<YOUR_DB>
    $ORACLE_HOME/bin/./emctl start dbconsole

  • Users for the j2ee application

    hi friends,
    i want to create the users for J2EE applications.
    can i create the users only for j2ee engine ?
    how can i create these users?
    if i want to implement the sap
    is it necessary to buy the licence for j2ee users?
    thanks&regards,
    srinivas.

    Hi
    To create the users in J2EE applications is not an issue, but the licensing is always applicable as it is applicable for ABAP applications.
    There are two ways depends on configurations:
    1. If the UME store is ABAP, then you can create the users at ABAP side using SU01 and at java side using http://<hostname>:5<Systemnumber>00/useradmin
    2. If the UME store is JAVA, then you can only create using http://<hostname>:5<Systemnumber>00/useradmin
    The licensing for JAVA applications depends as ABAP is having, if you use it as production you have to pay the charges. Please contact your local SAP representative for further details

  • Deploying J2EE application with MDB

    Hi,
    I am looking for a solution to deploy a J2EE application with MDB and the resource provider as well. For now, I only see the solution to manually create a resource provider by the EM enterprise console or to add the resource provider into the application.xml in the oc4j instance.
    Any help appreciated
    Peter

    Hi,
    This looks like an incorrect AQ JMS Jar file. Please contact the AQ team if this is a known issue and if required log a tar against AQ.
    Thanks
    Raja

  • Multiple J2EE applications on iAS904

    Hi,
    We will be having lots of J2EE applications deploy on iAS904. Is the best practice for this to have 1 OC4J per J2EE application? Or all J2EE applications in one OC4J container?
    Thanks,
    Charles

    Hi Charles --
    It's difficult to provide a single best practice. You'll need to look at the pros/cons of each and decide what makes most sense for your environment:
    To get the ball rolling, here are some considerations:
    1 OC4J instance per app:
    + finer grained manageability -- you can make changes to the one app which may require a start/stop of the app or the instance, which won't have any effect on other running apps/OC4J instances
    + The container level log files will just contain information pertaining to that one specific application
    + The OC4J instances can be tuned specifically for the application -- ie JVM settings
    + Clustering can be targetted for the single app -- if you have multiple applications per OC4J instance, then they all will participate in clustering if it is enabled (and they are clusterable). One app per OC4J instance produces a finer grained cluster model.
    - Each OC4J instance is a JVM process. If each app has a JVM process then you may be wasting resouces on the system as the apps aren't sharing a JVM
    - More management operations may be required since you may need to configure/maintain more instance information
    I'm sure some other folks will chime in here with some more insight on their practical experiences.
    There's an Oracle Application Server Best Practices document on OTN which I seem to remember does have some coverage of management/deployment issues which may some more information for you to consider.
    cheers
    -steve-

  • Performance of J2ee Application running in Portal Server

    Hi,
    We have developed the J2ee Application using JSPDynPage and the performance of this Application is going down day by day.
    It is taking arround 30 sec to load the page.Sometimes I am getting iView Timed out error if the Load is Very high.
    This is all happening in Production server.Can any one please help me to increase the Performance of the Portal.
    Thanks in Advance
    Ajay

    > Thanks for the response.
    >
    > There is no problem in the application as i know the
    > code in this application is perfectly fine.
    >
    > There will be huge load on monday that too between
    > 9-11 AM as too many people will be doing the  the
    > Database transactions at that point of time (adding
    > the data in to the DB extracting huge amount of data
    > from DB) the CPU usage in the porduction server will
    > reach 90 % to 99 % and it will never come down
    > ...this will again come to the normal situation when
    > we restart the portal database.
    >
    > But every monday i cannot restart the server as this
    > is in production.
    >
    > Can anyone please give some tips to increase the
    > performance of the portal.
    Have you checked your Garbage Collector log file ?
    I posted some hints about how to do that in the thread "Server Performance Issue" in this forum.
    I could be that you are running out of memory after the heavy load and then everything will be slow afterwards, because full GC's might be triggered frequently.  
    Regards,
    Markus
    >
    > Thanks
    > Ajay

  • Runtime#exec() from within a J2EE application

    I've got a batch processing task running on a timer as part of my J2EE application on WebLogic 8.1 and I'm experiencing problems with invoking Runtime#exec().
    To be more accurate, this is what I'm trying to do:
    * Moves a file in the filesystem using native shell commands.
    * @param src The file to move.
    * @param dst The destination file.
    public void move(String src, String dst) {
        Runtime runtime = Runtime.getRuntime();
        Process p = runtime.exec(new String[] { "mv", "-f", src, dst });
    }Now, this piece of code works perfectly when run manually ("java Move foo.txt bar.txt") but when it's run within the J2EE application -- as the same user as in the manual case -- the file's won't get moved anywhere.
    I suppose it's a permission/policy issue. If that's the case, how should I edit the policy file?
    I already tried to add the following lines to weblogic.policy:
    grant codeBase "file:${user.domain}/myServer/.internal/-" {
      permission java.security.AllPermission;
    grant codeBase "file:${user.domain}/myServer/.wlnotdelete/-" {
      permission java.security.AllPermission;
    };...but that didn't seem to help at all.

    Ok. I managed to solve this one by myself. The solution was to read the "stdout" and "stderr" streams from the process.
    Any idea why reading the streams helped?

  • Porting J2EE Applications to SAP WAS

    Helloo,
    Can anyone help me.
    If u have informations about porting of J2EE Applications into SAP WAS , then plz help me.
    I need certain J2EE Applications which are developed under J2EE 1.2 or lower than 1.3 (EAR files for conversion using convert tool).
    Please help me with suficient help including links for downloading EAR files(J2EE 1.2 ) with help for porting.
    I want to port one J2EE Application which is not developed under SAP WAS Netweaver (means not  even under 6.2), completely out of SAP WAS environment.
    How can i port that Application into SAP WAS?
    What are the prerequisites for this?(I Have Netweaver Studio).
    If any documents with helps available then help me with that links also..
                   With Regards
                    Kishor

    Hi Kishor,
    see guide to deploy pure-j2ee app to WAS 640?
    Hope it helps
    Detlev
    PS: Please be more responsive! If you ask something and people answer, it is not more than kind to reply if it was helpful or not, and then, where the problem stayed. This is friendly against the ones who help as well as against other users running into the same issue. And: One can very efficiently say "thanks" on SDN by rewarding points for helpful answers.
    This holds at least for the following threads opened by yours:
    Netweaver Studio and Portal Development  Application Creation (elp)
    Netweaver Studio(J2EE)  and Portal Applications (Help Me)
    Webdynpro Flights Project using JCO Connection
    Exceptions in Flights Webdynpro using JCO Connection

Maybe you are looking for

  • Checkbox field in ALV for REUSE_ALV_GRID_DISPLAY

    how to handle Checkbox field in ALV for REUSE_ALV_GRID_DISPLAY???? For example Alv has displayed 400 entries if user checks 4 entries and wants to donwload only those 4 entries from ALV using Copy to local file option then how should it be done. plea

  • Can a today's date be added in a date field when the submit button is pressed?

    I created a form with a submit button and the form is sent via email.  Can the date when the form is submitted show up in a date field with the button is pressed? Any help with this is much appreciated. Thanks.

  • Has anyone used a NI 9134 with DasyLab 13

    I am consdiering purchasing a NI 9134 for in vehicle data logging. I would like to run it using DasyLab 13. Has anyone tried this? There's never time to do it right, but there's always time to do it over!

  • GETLIST BAPI Wrapper for Purchase Requisiton

    HI All, I want to know the GETLIST BAPI Wrapper for Purchase Requisition in ECC 6.0 . I am able to find GETDETAIL but not GETLIST. It would be nice if anyone could help me out in this. Regards, Madhu. Edited by: madhu kv on Jul 8, 2008 10:53 AM

  • I need you help urgently my job is on the line

    I really need you help it is very urgent as my job is in trouble! In may my I phone got lost I had all back up on my me account and Managed to save my contact list on my I pad however the next day after my I phone got stolen , the mobile me was close