views:

263

answers:

2

I have the following problem deploying my application.

It uses JMS and a remote openMQ for communication between servers. The problem is that the connection is not fully reliable so it can be up or down. For reconnecting I set the jms reconnect glassfish property so it reconnects if at some moment the connection gets lost. The problem arises when i try to deploy the application and there is no connection. It looks like it keeps retrying the connection but the application does not finish deployment until connection is available.

Is it possible to configure it in any way that the deployment continues even if there is no connection and keeps retrying until there is connection available?

Thanks a lot.

Edit: I'm trying to run the MDB initialization in a different thread. I tried both

I'm trying to assign a different thread to the MDB by two ways changing sun-ejb.jar.xml

        <bean-pool>
            <steady-pool-size>1</steady-pool-size>
            <resize-quantity>1</resize-quantity>
            <max-pool-size>1</max-pool-size>
            <pool-idle-timeout-in-seconds>60</pool-idle-timeout-in-seconds>
        </bean-pool>

and also with

        <use-thread-pool-id>a-new-thread-pool</use-thread-pool-id>

But I had no luck. Looks like it's waiting for this thread to end since it looks like it's getting the new thread but it waits for that thread to end to finish starting application so, in my case, application doesn't get deployed correctly..

Edit 2 I tried to run jms service in a different thread also...

asadmin create-resource-adapter-config --threadpools a-new-thread-pool jmsra

No luck also.

A: 

Can you think of spawning a separate thread that connects to the JMS, such that the main applications keeps running without being blocked.

navr
Looks like a good idea. I cannot spawn a thread myself since i'm in J2EE but glassfish gives un some facilities. Anyway it still does not work. I edited the question.
Rafa de Castro
A: 

With glassfish default JMS provider this is impossible. I finally managed to do this by changing JCA adapter to

https://jmsjca.dev.java.net/

Rafa de Castro