cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Seumas Soltysik (JIRA)" <j...@apache.org>
Subject [jira] Updated: (CXF-2145) Proxy in JCA connector throws exception due to concurrency issues
Date Tue, 31 Mar 2009 19:32:50 GMT

     [ https://issues.apache.org/jira/browse/CXF-2145?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Seumas Soltysik updated CXF-2145:
---------------------------------

    Attachment: patch.txt

This is patch for 2.0.x but undoubted needs to also be applied to 2.1.x and trunk. The patch
adds  a pool for EJB/MDB proxies to avoid thread concurrency issues.

> Proxy in JCA connector throws exception due to concurrency issues
> -----------------------------------------------------------------
>
>                 Key: CXF-2145
>                 URL: https://issues.apache.org/jira/browse/CXF-2145
>             Project: CXF
>          Issue Type: Bug
>          Components: Integration
>    Affects Versions: 2.1, 2.0.6, 2.2
>            Reporter: Seumas Soltysik
>         Attachments: patch.txt
>
>
> A customer is having a problem with concurrent access to a JCA endpoint that is deployed
in WebSphere. The stacktrace is below.
> They are running a 2.0.x version of CXF with WebSphere 6.1.0.19, HP/UX version B.11.23,
Java 1.5.0.13 .
> The problem is that the JCA connector uses a single MDB/EJB proxy for all threads which
is causing the exception to be thrown. The solution is to create a pool of proxies which can
be accessed so that the proxy is used by no more than 1 thread at a time.
> [3/10/09 15:55:19:685 EDT] 0000042f DispatchMDBIn E Failed to obtain service object java:comp/env/GreeterWithWsdlLocalHome

>                                  java.lang.IllegalStateException: Multiple threads can
not use same MessageEndpoint proxy instance concurrently 
>             at com.ibm.ejs.container.MessageEndpointHandler.throwIllegalStateException(MessageEndpointHandler.java:599)

>             at com.ibm.ejs.container.MessageEndpointHandler.checkState(MessageEndpointHandler.java:433)

>             at com.ibm.ejs.container.MessageEndpointHandler.invokeMdbMethod(MessageEndpointHandler.java:889)

>             at com.ibm.ejs.container.MessageEndpointHandler.invoke(MessageEndpointHandler.java:747)

>             at $Proxy50.lookupTargetObject(Unknown Source) 
>             at org.apache.cxf.jca.inbound.DispatchMDBInvoker.getServiceObject(DispatchMDBInvoker.java:57)

>             at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:51)

>             at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56)

>             at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)

>             at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:92)

>             at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)

>             at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:77)

>             at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:280)

>             at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:254)

>             at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)

>             at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)

>             at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)

>             at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

>             at org.mortbay.jetty.Server.handle(Server.java:324) 
>             at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)

>             at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842)

>             at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648) 
>             at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) 
>             at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) 
>             at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)

>             at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message