uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jaroslaw Cwiklik <cwik...@apache.org>
Subject Re: How know when "Session is closed" after establish connections between uima-as client and ActiveMQ?
Date Tue, 11 Jul 2017 13:59:57 GMT
Hi, I am investigating this issue now. Are you having this problem in
production or testing? The multi-client recovery is quite complicated and
subject to race conditions. I need to first re-create the problem and work
on a solution if this in fact is a bug. From what you sent it looks like
there is a bug in client recovery. This may take some time to sort out.
Will let you know what I find.

Jerry

On Tue, Jul 11, 2017 at 9:02 AM, nelson rivera <nelsonrivera12@gmail.com>
wrote:

> analyzing more deep the issue, I have observed that after restart the
> broker, the first uima-as client that is consumed (no matter which),
> has a correct behavior, the instruccion to uima-as client
> "BaseUIMAAsynchronousEngine_impl.connectionOpen()" return "false" and
> correctly initializes the client again and process the request.
>
> All next uima-as client to consume returns "true" to the instruccion
> "BaseUIMAAsynchronousEngine_impl.connectionOpen()" and them get the error:
>
> jul 11, 2017 8:11:52 AM
> org.apache.uima.adapter.jms.client.ActiveMQMessageSender createSession
> INFORMACIÓN: UIMA AS Client Failed Creating Session To Destination:
> XCharsetDetector Managed By Broker: tcp://nelson-XPS-8700:61616
> jul 11, 2017 8:11:52 AM
> org.apache.uima.adapter.jms.client.ActiveMQMessageSender createSession
> INFORMACIÓN: UIMA AS Client Connection To Destination:
> XCharsetDetector Managed By Broker: tcp://nelson-XPS-8700:61616 Is
> Closed
> jul 11, 2017 8:11:52 AM
> org.apache.uima.adapter.jms.client.ActiveMQMessageSender run
> ADVERTENCIA:
> org.apache.activemq.ConnectionClosedException: The connection is already
> closed
>         at org.apache.activemq.ActiveMQConnection.checkClosed(
> ActiveMQConnection.java:1459)
>         at org.apache.activemq.ActiveMQConnection.checkClosedOrFailed(
> ActiveMQConnection.java:1446)
>         at org.apache.activemq.ActiveMQConnection.createSession(
> ActiveMQConnection.java:328)
>         at org.apache.uima.adapter.jms.client.ActiveMQMessageSender.
> createSession(ActiveMQMessageSender.java:108)
>         at org.apache.uima.adapter.jms.client.ActiveMQMessageSender.
> initializeProducer(ActiveMQMessageSender.java:143)
>         at org.apache.uima.adapter.jms.client.ActiveMQMessageSender.
> createTextMessage(ActiveMQMessageSender.java:191)
>         at org.apache.uima.adapter.jms.client.BaseMessageSender.run(
> BaseMessageSender.java:330)
>         at java.lang.Thread.run(Thread.java:748)
>
> 2017-07-11 8:50 GMT-04:00, nelson rivera <nelsonrivera12@gmail.com>:
> > My client application not receive any exception in any time. I use
> > both, in some uima-as client  use sendAndReceive() and in others use
> > send(), each uima-as client has try-catch and none of them receive a
> > exception, the following lines are printed in the console output,but
> > the uima-as client is not notified and keeps waiting.
> >
> > 2017-07-10 16:48 GMT-04:00, Jaroslaw Cwiklik <uimaee@gmail.com>:
> >> it looks like the UIMA-AS client is setup to throw an exception back to
> >> the
> >> application in this case. Did your application receive an exception? Are
> >> you using sendAndReceive() or send()? The UIMA-AS client rejects
> requests
> >> while a connection is down.
> >>
> >> Jerry
> >>
> >> On Mon, Jul 10, 2017 at 4:19 PM, Jaroslaw Cwiklik <cwiklik@apache.org>
> >> wrote:
> >>
> >>> Hmm, this is a different exception from Session closed. This time it is
> >>> a
> >>> Connection is closed. Seems like a race condition. How many UIMA-AS
> >>> clients
> >>> do you have running in this process?
> >>>
> >>> Jerry
> >>>
> >>> On Mon, Jul 10, 2017 at 3:51 PM, nelson rivera
> >>> <nelsonrivera12@gmail.com>
> >>> wrote:
> >>>
> >>>> i just tested the snapshot build from
> >>>> https://svn.apache.org/repos/asf/uima/uima-as/trunk, and the behavior
> >>>> still are similar for many uima-as client, end in a exception, but now
> >>>> show this stacktrace:
> >>>>
> >>>> org.apache.activemq.ConnectionClosedException: The connection is
> >>>> already
> >>>> closed
> >>>>         at org.apache.activemq.ActiveMQConnection.
> checkClosed(ActiveMQC
> >>>> onnection.java:1459)
> >>>>         at org.apache.activemq.ActiveMQConnection.
> checkClosedOrFailed(A
> >>>> ctiveMQConnection.java:1446)
> >>>>         at org.apache.activemq.ActiveMQConnection.
> createSession(ActiveM
> >>>> QConnection.java:328)
> >>>>         at org.apache.uima.adapter.jms.client.ActiveMQMessageSender.
> cre
> >>>> ateSession(ActiveMQMessageSender.java:108)
> >>>>         at org.apache.uima.adapter.jms.client.ActiveMQMessageSender.
> ini
> >>>> tializeProducer(ActiveMQMessageSender.java:143)
> >>>>         at org.apache.uima.adapter.jms.client.ActiveMQMessageSender.
> cre
> >>>> ateTextMessage(ActiveMQMessageSender.java:191)
> >>>>         at org.apache.uima.adapter.jms.client.BaseMessageSender.run(
> Bas
> >>>> eMessageSender.java:330)
> >>>>         at java.lang.Thread.run(Thread.java:748)
> >>>>
> >>>> 2017-07-07 15:33 GMT-04:00, nelson rivera <nelsonrivera12@gmail.com>:
> >>>> > Sorry for the delay, i am building the framework from the source
at
> >>>> > https://svn.apache.org/repos/asf/uima/uima-as/trunk, when test
the
> >>>> > issue, i will comment the result.
> >>>> >
> >>>> > 2017-07-06 10:04 GMT-04:00, Jaroslaw Cwiklik <cwiklik@apache.org>:
> >>>> >> Hello, the snapshot binaries (zip + tar) are here:
> >>>> >>
> >>>> >> https://repository.apache.org/content/repositories/snapshots
> >>>> /org/apache/uima/uima-as/2.9.1-SNAPSHOT/
> >>>> >>
> >>>> >> Jerry
> >>>> >>
> >>>> >> On Thu, Jul 6, 2017 at 8:51 AM, Jaroslaw Cwiklik
> >>>> >> <cwiklik@apache.org>
> >>>> >> wrote:
> >>>> >>
> >>>> >>> Hi, instructions how to build from source are here:
> >>>> >>> https://uima.apache.org/building-uima.html
> >>>> >>>
> >>>> >>> It's a bit involved process so I will try to post a snapshot
of
> >>>> uima-as
> >>>> >>> to
> >>>> >>> Apache snapshot repository and will provide you with a
link later
> >>>> today.
> >>>> >>>
> >>>> >>> Jerry
> >>>> >>>
> >>>> >>> On Wed, Jul 5, 2017 at 4:32 PM, nelson rivera <
> >>>> nelsonrivera12@gmail.com>
> >>>> >>> wrote:
> >>>> >>>
> >>>> >>>> Please can you give me the url to source code with
the changes,
> to
> >>>> >>>> test.
> >>>> >>>>
> >>>> >>>> 2017-07-05 16:19 GMT-04:00, Jaroslaw Cwiklik <cwiklik@apache.org
> >:
> >>>> >>>> > Just delivered a few changes to deal with a stale
Session. Can
> >>>> >>>> > you
> >>>> >>>> > build
> >>>> >>>> > from source and test.
> >>>> >>>> > Jerry
> >>>> >>>> >
> >>>> >>>> > On Wed, Jul 5, 2017 at 2:21 PM, Jaroslaw Cwiklik
<
> >>>> cwiklik@apache.org>
> >>>> >>>> > wrote:
> >>>> >>>> >
> >>>> >>>> >> Thanks. Will check the code and work on a
fix
> >>>> >>>> >>
> >>>> >>>> >> Jerry
> >>>> >>>> >>
> >>>> >>>> >> On Wed, Jul 5, 2017 at 2:10 PM, nelson rivera
<
> >>>> >>>> nelsonrivera12@gmail.com>
> >>>> >>>> >> wrote:
> >>>> >>>> >>
> >>>> >>>> >>> Here the stack trace for the error that
asked me:
> >>>> >>>> >>> jul 05, 2017 2:08:50 PM
> >>>> >>>> >>> org.apache.uima.adapter.jms.client.ActiveMQMessageSender
run
> >>>> >>>> >>> ADVERTENCIA:
> >>>> >>>> >>> javax.jms.IllegalStateException: The Session
is closed
> >>>> >>>> >>>         at org.apache.activemq.ActiveMQSe
> >>>> >>>> ssion.checkClosed(ActiveMQSess
> >>>> >>>> >>> ion.java:771)
> >>>> >>>> >>>         at org.apache.activemq.ActiveMQSe
> >>>> >>>> ssion.configureMessage(ActiveM
> >>>> >>>> >>> QSession.java:759)
> >>>> >>>> >>>         at org.apache.activemq.ActiveMQSe
> >>>> >>>> ssion.createTextMessage(Active
> >>>> >>>> >>> MQSession.java:440)
> >>>> >>>> >>>         at org.apache.uima.adapter.jms.cl
> >>>> >>>> ient.ActiveMQMessageSender.cre
> >>>> >>>> >>> ateTextMessage(ActiveMQMessageSender.java:184)
> >>>> >>>> >>>         at org.apache.uima.adapter.jms.cl
> >>>> >>>> ient.BaseMessageSender.run(Bas
> >>>> >>>> >>> eMessageSender.java:307)
> >>>> >>>> >>>         at java.lang.Thread.run(Thread.java:748)
> >>>> >>>> >>>
> >>>> >>>> >>> 2017-07-05 12:16 GMT-04:00, nelson rivera
> >>>> >>>> >>> <nelsonrivera12@gmail.com>:
> >>>> >>>> >>> > This behavior is random, not occurs
always. In the most of
> >>>> >>>> >>> > the
> >>>> >>>> simple
> >>>> >>>> >>> > programs and simple test case tested,
after restart the
> >>>> >>>> >>> > UIMA-AS
> >>>> >>>> Broker
> >>>> >>>> >>> > without restart service uima-as,
the instruccion to uima-as
> >>>> >>>> >>> > client
> >>>> >>>> >>> > "BaseUIMAAsynchronousEngine_impl.connectionOpen()"
return
> >>>> "false"
> >>>> >>>> and
> >>>> >>>> >>> > correctly i initialize the client
again.
> >>>> >>>> >>> >
> >>>> >>>> >>> > The incorrect behavior is most frequently
with many uima-as
> >>>> >>>> >>> > client
> >>>> >>>> >>> > instances. Is the case of my general
application in which i
> >>>> have
> >>>> >>>> many
> >>>> >>>> >>> > service uima-as, and for each one
creates one instace of
> >>>> uima-as
> >>>> >>>> >>> > client (BaseUIMAAsynchronousEngine_impl)
and keep it alive
> >>>> >>>> >>> > to
> >>>> >>>> process
> >>>> >>>> >>> > all requests of the service uima-as.
> >>>> >>>> >>> >
> >>>> >>>> >>> > Is in this scenario with many instancies
of uima-as client
> >>>> >>>> >>> > (BaseUIMAAsynchronousEngine_impl)
in the same program (a
> >>>> >>>> >>> > monolithic
> >>>> >>>> >>> > application web in tomcat) where
after restart the UIMA-AS
> >>>> Broker
> >>>> >>>> >>> > without restart any service uima-as,
many uima-as client
> >>>> returns
> >>>> >>>> >>> > "true" to the instruccion
> >>>> >>>> >>> > "BaseUIMAAsynchronousEngine_impl.connectionOpen()"
but
> them
> >>>> throw
> >>>> >>>> >>> > "javax.jms.IllegalStateException:
The Session is closed"
> >>>> >>>> >>> > when proces the request.
> >>>> >>>> >>> >
> >>>> >>>> >>> > 2017-07-04 16:13 GMT-04:00, nelson
rivera
> >>>> >>>> >>> > <nelsonrivera12@gmail.com
> >>>> >>>> >:
> >>>> >>>> >>> >> One peculiarity is that, is a
primitive annotator
> implented
> >>>> >>>> >>> >> in
> >>>> >>>> >>> >> c++,
> >>>> >>>> >>> >> but is deployed with de deployAsyncService.sh
de uima-as
> >>>> >>>> >>> >> directly.
> >>>> >>>> >>> >>
> >>>> >>>> >>> >> 2017-07-04 14:53 GMT-04:00, nelson
rivera <
> >>>> >>>> nelsonrivera12@gmail.com>:
> >>>> >>>> >>> >>> In my program main, i initialize
a uimas-as client only
> >>>> >>>> >>> >>> once
> >>>> >>>> >>> >>> and
> >>>> >>>> >>> >>> I
> >>>> >>>> >>> >>> use
> >>>> >>>> >>> >>> this client to consume all
requests to a displayed
> service
> >>>> >>>> uima-as.
> >>>> >>>> >>> >>>
> >>>> >>>> >>> >>> Before process a request
i ask to uima-as client with:
> >>>> >>>> >>> >>> BaseUIMAAsynchronousEngine_impl.connectionOpen()
> >>>> >>>> >>> >>> and if the result es "false",
i stop the uima-as client
> >>>> >>>> >>> >>> and
> >>>> >>>> >>> >>> initialize
> >>>> >>>> >>> >>> it
> >>>> >>>> >>> >>> again.
> >>>> >>>> >>> >>>
> >>>> >>>> >>> >>> With some steps, still undefined,
but after restart the
> >>>> UIMA-AS
> >>>> >>>> >>> >>> Broker
> >>>> >>>> >>> >>> without restart service uima-as.
> >>>> >>>> >>> >>> The instruccion to uima-as
client
> >>>> >>>> >>> >>> BaseUIMAAsynchronousEngine_impl.connectionOpen()
return
> >>>> "true",
> >>>> >>>> but
> >>>> >>>> >>> >>> them i get a "javax.jms.IllegalStateException:
The
> Session
> >>>> is
> >>>> >>>> >>> >>> closed"
> >>>> >>>> >>> >>> when proces the request.
> >>>> >>>> >>> >>>
> >>>> >>>> >>> >>> Wich is the best way to know
when connections betewen
> >>>> >>>> >>> >>> cliente
> >>>> >>>> >>> >>> uima-as
> >>>> >>>> >>> >>> and ActiveMQ is broken? and
i should restart uima-as
> >>>> >>>> >>> >>> client.
> >>>> >>>> >>> >>>
> >>>> >>>> >>> >>
> >>>> >>>> >>> >
> >>>> >>>> >>>
> >>>> >>>> >>
> >>>> >>>> >>
> >>>> >>>> >
> >>>> >>>>
> >>>> >>>
> >>>> >>>
> >>>> >>
> >>>> >
> >>>>
> >>>
> >>>
> >>
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message