Has anybody had a chance to look at Beniamin's problem? I think it
would be a good idea to understand this issue, before cutting 2.1
If I recall correctly, Beniamin didn't have a test program he could
share with us. We may need to rig one up. I don't see an MDB test in
testsuite. Probably something good to add.
I probably won't have a chance to look at this until this weekend...
--kevan
On Jan 17, 2008, at 11:32 AM, Tomasz Mazan wrote:
I got MDB that listens to queue for messages.
This MDB uses ConnectionFactory to get connection to send answer to
received
message. Destination is gotten from replyTo message's field.
There's quote from my resource adapter's deployment plan:
<resourceadapter>
<resourceadapter-instance>
<resourceadapter-name>DriversJms</resourceadapter-name>
<nam:workmanager
xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2">
<nam:gbean-link>DefaultWorkManager</nam:gbean-link>
</nam:workmanager>
</resourceadapter-instance>
<outbound-resourceadapter>
<connection-definition>
<connectionfactory-interface>javax.jms.ConnectionFactory</
connectionfactory-interface>
<connectiondefinition-instance>
<name>DriversJmsXAConnectionFactory</name>
<connectionmanager>
<xa-transaction>
<transaction-caching />
</xa-transaction>
<single-pool>
<max-size>10</max-size>
<blocking-timeout-milliseconds>5000</blocking-timeout-
milliseconds>
<select-one-assume-match/>
</single-pool>
</connectionmanager>
</connectiondefinition-instance>
</connection-definition>
</outbound-resourceadapter>
</resourceadapter>
My driver (MDB) uses activation config from openejb-jar.xml:
<message-driven>
<ejb-name>Das220JmsDriver</ejb-name>
<nam:resource-adapter>
<nam:resource-link>DriversJms</nam:resource-link>
</nam:resource-adapter>
<activation-config>
<activation-config-property>
<activation-config-property-name>destination</activation-config-
property-name>
<activation-config-property-value>JmsDispatcherDAS220Request</
activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-
property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-
property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>acknowledgeMode</activation-config-
property-name>
<activation-config-property-value>Auto-acknowledge</activation-
config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>InitialRedeliveryDelay</activation-
config-property-name>
<activation-config-property-value>30000</activation-config-property-
value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>MaximumRedeliveries</activation-
config-property-name>
<activation-config-property-value>9999</activation-config-property-
value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>maxMessagesPerSessions</activation-
config-property-name>
<activation-config-property-value>1</activation-config-property-
value>
</activation-config-property>
</activation-config>
</message-driven>
I set maxMessagesPerSessions because sometimes MDB has to consume more
messages (it depends on currently processed message - it's kind of
cleaning
queue from messages with lower priority). Now I've disabled this
functionality, but in future it should work, so I don't want to set
greater
valie for maxMessahesPerSessions.
Where's the problem ?
MDB processes let's say 7-13 messages and don't execute onMessage
until next
module restart via geronimo's console.
I've checked my MDB and I'm sure that all jms connections created to
send
response are being closed:
Connection conn = null;
Session sess = null;
MessageProducer producer = null;
try {
conn = this.createConnection();
sess = this.createSession(conn);
producer = this.createMessageProducer(sess,
replyToDest);
ObjectMessage msg = this.createMessage(sess);
msg.setObject(response);
producer.send(msg, Message.DEFAULT_DELIVERY_MODE,
originalMessage.getJMSPriority(), Message.DEFAULT_TIME_TO_LIVE);
logger.info("Success response - sent.");
} finally {
try {
if (producer != null) {
producer.close();
}
if (sess != null) {
sess.close();
}
if (conn != null) {
conn.close();
}
} catch (JMSException e) {
e.printStackTrace();
}
}
Any idea what's wrong ?
Thanks in advance
Beniamin
--
View this message in context:
http://www.nabble.com/Strange-plug-with-delivering-messages-to-MDB-tp14923100s134p14923100.html
Sent from the Apache Geronimo - Users mailing list archive at
Nabble.com.