[jira] Created: (AMQ-1113) ActiveMQConsumer can catch an error in dispatch but logs it as a warning

2006-12-29 Thread Rob Davies (JIRA)
ActiveMQConsumer can catch an error in dispatch but logs it as a warning


 Key: AMQ-1113
 URL: https://issues.apache.org/activemq/browse/AMQ-1113
 Project: ActiveMQ
  Issue Type: Bug
  Components: JMS client
Reporter: Rob Davies
 Assigned To: Rob Davies
Priority: Minor
 Fix For: 4.2.0




-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Resolved: (AMQ-1113) ActiveMQConsumer can catch an error in dispatch but logs it as a warning

2006-12-29 Thread Rob Davies (JIRA)
 [ https://issues.apache.org/activemq/browse/AMQ-1113?page=all ]

Rob Davies resolved AMQ-1113.
-

Resolution: Fixed

Fixed by SVN revision 490967

 ActiveMQConsumer can catch an error in dispatch but logs it as a warning
 

 Key: AMQ-1113
 URL: https://issues.apache.org/activemq/browse/AMQ-1113
 Project: ActiveMQ
  Issue Type: Bug
  Components: JMS client
Reporter: Rob Davies
 Assigned To: Rob Davies
Priority: Minor
 Fix For: 4.2.0




-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




Re: svn commit: r490789 - /incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java

2006-12-29 Thread Rob Davies
ah - ok - I'll look at servicing the async error from the transport  
thread


cheers,

Rob
On 29 Dec 2006, at 17:52, Hiram Chirino wrote:


Hi Rob,

The connection actually has some concurrency to it.  This is when an
async error is detected on the connection.  Those syncs where there to
ensure that proper cleanup was performed.  I.e. if the connection is
adding a consumer and and publisher detects that the consumer failed
it will clean up the consumer's connection and it might not do it
properly if the consumer subscription was still being setup.

so in short that's why the syncs were in place.  If we could get the
async errors to get serviced from the transport's thread then we could
eliminate the syncs.


On 12/28/06, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

Author: rajdavies
Date: Thu Dec 28 12:44:59 2006
New Revision: 490789

URL: http://svn.apache.org/viewvc?view=revrev=490789
Log:
drop synchronization from connectionState and connection context -
not required when using ConcurrentHashMap and limited concurrency for
publishers or transactions for the same client connection

Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/ 
apache/activemq/broker/TransportConnection.java


Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/ 
apache/activemq/broker/TransportConnection.java
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/ 
activemq-core/src/main/java/org/apache/activemq/broker/ 
TransportConnection.java?view=diffrev=490789r1=490788r2=490789
= 
=
--- incubator/activemq/trunk/activemq-core/src/main/java/org/ 
apache/activemq/broker/TransportConnection.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/ 
apache/activemq/broker/TransportConnection.java Thu Dec 28  
12:44:59 2006

@@ -352,7 +352,7 @@
 return null;
 }

-synchronized public Response processBeginTransaction 
(TransactionInfo info) throws Exception {
+public Response processBeginTransaction(TransactionInfo info)  
throws Exception {
 ConnectionState cs = (ConnectionState)  
localConnectionStates.get(info.getConnectionId());

 ConnectionContext context=null;
 if( cs!=null ) {
@@ -367,14 +367,14 @@
 return null;
 }

-synchronized public Response processEndTransaction 
(TransactionInfo info) throws Exception {
+public Response processEndTransaction(TransactionInfo info)  
throws Exception {
 // No need to do anything.  This packet is just sent by  
the client
 // make sure he is synced with the server as commit  
command could

 // come from a different connection.
 return null;
 }

-synchronized public Response processPrepareTransaction 
(TransactionInfo info) throws Exception {
+public Response processPrepareTransaction(TransactionInfo  
info) throws Exception {
 ConnectionState cs = (ConnectionState)  
localConnectionStates.get(info.getConnectionId());

 ConnectionContext context=null;
 if( cs!=null ) {
@@ -398,7 +398,7 @@
 }
 }

-synchronized public Response processCommitTransactionOnePhase 
(TransactionInfo info) throws Exception {
+public Response processCommitTransactionOnePhase 
(TransactionInfo info) throws Exception {
 ConnectionState cs = (ConnectionState)  
localConnectionStates.get(info.getConnectionId());

 ConnectionContext context=null;
 if( cs!=null ) {
@@ -412,7 +412,7 @@

 }

-synchronized public Response processCommitTransactionTwoPhase 
(TransactionInfo info) throws Exception {
+public Response processCommitTransactionTwoPhase 
(TransactionInfo info) throws Exception {
 ConnectionState cs = (ConnectionState)  
localConnectionStates.get(info.getConnectionId());

 ConnectionContext context=null;
 if( cs!=null ) {
@@ -424,7 +424,7 @@
 return null;
 }

-synchronized public Response processRollbackTransaction 
(TransactionInfo info) throws Exception {
+public Response processRollbackTransaction(TransactionInfo  
info) throws Exception {
 ConnectionState cs = (ConnectionState)  
localConnectionStates.get(info.getConnectionId());

 ConnectionContext context=null;
 if( cs!=null ) {
@@ -436,7 +436,7 @@
 return null;
 }

-synchronized public Response processForgetTransaction 
(TransactionInfo info) throws Exception {
+public Response processForgetTransaction(TransactionInfo  
info) throws Exception {
 ConnectionState cs = (ConnectionState)  
localConnectionStates.get(info.getConnectionId());

 ConnectionContext context=null;
 if( cs!=null ) {
@@ -446,7 +446,7 @@
 return null;
 }

-synchronized public Response processRecoverTransactions 
(TransactionInfo info) throws Exception {
+public Response processRecoverTransactions(TransactionInfo  
info) throws Exception {
   

[jira] Assigned: (AMQ-961) Problem with subscription passing with network of brokers in AMQ 4.0.2

2006-12-29 Thread Rob Davies (JIRA)
 [ https://issues.apache.org/activemq/browse/AMQ-961?page=all ]

Rob Davies reassigned AMQ-961:
--

Assignee: Rob Davies

 Problem with subscription passing with network of brokers in AMQ 4.0.2
 --

 Key: AMQ-961
 URL: https://issues.apache.org/activemq/browse/AMQ-961
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 4.0.2
Reporter: Kevin Yaussy
 Assigned To: Rob Davies
Priority: Critical
 Attachments: RestartDFBOnResume.diff


 There's an occasional problem with subscription propagation when using a 
 network of brokers.  Test scenario uses ConsumerTool and PublisherTool in 
 examples area of distribution.
 1) Start broker A (has a network connection to broker B)
 2) Start broker B (has a network connection to broker A)
 3) start consumer C against broker A, on FOO
 4) start publisher P against broker B, on FOO
 Messages do not flow to consumer C.  In the broker B log, there's no 
 indication it got any subscriptions from broker A.  Again, this is occasional.
 I've taken a kill-3 on the brokers, both when this condition appears, and 
 when everything is fine.  There's an obvious difference in one of the threads 
 that hopefully will bring light to the problem.  I've not gone into the code 
 yet to try and find the issue, but figured I would open this issue first.
 Stack trace of broker A when subscriptions did NOT pass, and message flow is 
 broken:
 ActiveMQ Transport: tcp://perfgc1a/170.137.15.169:5112 prio=10 
 tid=0x0030e160 nid=0x3f in Object.wait() [0x8
 e2ff000..0x8e2ff8f0]
 at java.lang.Object.wait(Native Method)
 - waiting on 0x9b2b00d0 (a 
 edu.emory.mathcs.backport.java.util.concurrent.CountDownLatch)
 at java.lang.Object.wait(Object.java:474)
 at 
 edu.emory.mathcs.backport.java.util.concurrent.CountDownLatch.await(CountDownLatch.java:179)
 - locked 0x9b2b00d0 (a 
 edu.emory.mathcs.backport.java.util.concurrent.CountDownLatch)
 at 
 org.apache.activemq.network.DemandForwardingBridgeSupport.waitStarted(DemandForwardingBridgeSupport
 .java:830)
 at 
 org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBrid
 geSupport.java:329)
 at 
 org.apache.activemq.network.DemandForwardingBridgeSupport$2.onCommand(DemandForwardingBridgeSupport
 .java:130)
 at 
 org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:92)
 at 
 org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
 at 
 org.apache.activemq.transport.failover.FailoverTransport$1.onCommand(FailoverTransport.java:117)
 at 
 org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:124)
 at 
 org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:123)
 at 
 org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:88)
 at 
 org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
 at java.lang.Thread.run(Thread.java:595)
 Stack trace of broker A when everything works correctly:
 ActiveMQ Transport: tcp://perfgc1a/170.137.15.169:5112 prio=10 
 tid=0x01955fc8 nid=0x3f runnable [0x8e2cf000..0x8e2cfaf0]
 at java.net.SocketInputStream.socketRead0(Native Method)
 at java.net.SocketInputStream.read(SocketInputStream.java:129)
 at 
 org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:49)
 at 
 org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:56)
 at java.io.DataInputStream.readInt(DataInputStream.java:353)
 at 
 org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:275)
 at 
 org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:136)
 at java.lang.Thread.run(Thread.java:595)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Resolved: (AMQ-961) Problem with subscription passing with network of brokers in AMQ 4.0.2

2006-12-29 Thread Rob Davies (JIRA)
 [ https://issues.apache.org/activemq/browse/AMQ-961?page=all ]

Rob Davies resolved AMQ-961.


Fix Version/s: 4.2.0
   Resolution: Fixed

Applied patch in SVN revision 491185

thanks kevin Yaussy!

 Problem with subscription passing with network of brokers in AMQ 4.0.2
 --

 Key: AMQ-961
 URL: https://issues.apache.org/activemq/browse/AMQ-961
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 4.0.2
Reporter: Kevin Yaussy
 Assigned To: Rob Davies
Priority: Critical
 Fix For: 4.2.0

 Attachments: RestartDFBOnResume.diff


 There's an occasional problem with subscription propagation when using a 
 network of brokers.  Test scenario uses ConsumerTool and PublisherTool in 
 examples area of distribution.
 1) Start broker A (has a network connection to broker B)
 2) Start broker B (has a network connection to broker A)
 3) start consumer C against broker A, on FOO
 4) start publisher P against broker B, on FOO
 Messages do not flow to consumer C.  In the broker B log, there's no 
 indication it got any subscriptions from broker A.  Again, this is occasional.
 I've taken a kill-3 on the brokers, both when this condition appears, and 
 when everything is fine.  There's an obvious difference in one of the threads 
 that hopefully will bring light to the problem.  I've not gone into the code 
 yet to try and find the issue, but figured I would open this issue first.
 Stack trace of broker A when subscriptions did NOT pass, and message flow is 
 broken:
 ActiveMQ Transport: tcp://perfgc1a/170.137.15.169:5112 prio=10 
 tid=0x0030e160 nid=0x3f in Object.wait() [0x8
 e2ff000..0x8e2ff8f0]
 at java.lang.Object.wait(Native Method)
 - waiting on 0x9b2b00d0 (a 
 edu.emory.mathcs.backport.java.util.concurrent.CountDownLatch)
 at java.lang.Object.wait(Object.java:474)
 at 
 edu.emory.mathcs.backport.java.util.concurrent.CountDownLatch.await(CountDownLatch.java:179)
 - locked 0x9b2b00d0 (a 
 edu.emory.mathcs.backport.java.util.concurrent.CountDownLatch)
 at 
 org.apache.activemq.network.DemandForwardingBridgeSupport.waitStarted(DemandForwardingBridgeSupport
 .java:830)
 at 
 org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBrid
 geSupport.java:329)
 at 
 org.apache.activemq.network.DemandForwardingBridgeSupport$2.onCommand(DemandForwardingBridgeSupport
 .java:130)
 at 
 org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:92)
 at 
 org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
 at 
 org.apache.activemq.transport.failover.FailoverTransport$1.onCommand(FailoverTransport.java:117)
 at 
 org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:124)
 at 
 org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:123)
 at 
 org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:88)
 at 
 org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
 at java.lang.Thread.run(Thread.java:595)
 Stack trace of broker A when everything works correctly:
 ActiveMQ Transport: tcp://perfgc1a/170.137.15.169:5112 prio=10 
 tid=0x01955fc8 nid=0x3f runnable [0x8e2cf000..0x8e2cfaf0]
 at java.net.SocketInputStream.socketRead0(Native Method)
 at java.net.SocketInputStream.read(SocketInputStream.java:129)
 at 
 org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:49)
 at 
 org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:56)
 at java.io.DataInputStream.readInt(DataInputStream.java:353)
 at 
 org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:275)
 at 
 org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:136)
 at java.lang.Thread.run(Thread.java:595)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Resolved: (AMQ-776) ConduitBridge can malfunction when first of a set of consumers goes away

2006-12-29 Thread Rob Davies (JIRA)
 [ https://issues.apache.org/activemq/browse/AMQ-776?page=all ]

Rob Davies resolved AMQ-776.


Fix Version/s: 4.2.0
   (was: 4.0.3)
   Resolution: Fixed

patch applied for associated issue: 
http://issues.apache.org/activemq/browse/AMQ-961

 ConduitBridge can malfunction when first of a set of consumers goes away
 

 Key: AMQ-776
 URL: https://issues.apache.org/activemq/browse/AMQ-776
 Project: ActiveMQ
  Issue Type: Bug
  Components: Broker
Affects Versions: 4.0.1
Reporter: Kevin Yaussy
 Assigned To: Rob Davies
Priority: Critical
 Fix For: 4.2.0

 Attachments: ConduitBridge.patch, DemandForwardingBridgeSupport.patch


 When the following scenario is followed, any of the subsequent consumers will 
 stop receiving messages.  I've reproduced this using the ConsumerTool, and 
 ProducerTool supplied in the example area of the distribution.
 +++
 Start Broker A
 Start Broker B
 Start Consumer 1, connecting to Broker B, consuming FOO
 Start Consumer 2, connecting to Broker B, consuming FOO
 Start Publisher, connecting to Broker A, publishing FOO
 Ctl-C out of Consumer 1
 Consumer 2 stops receiving messages
 +++
 Seems to me that ConduitBridge is supposed to track all consumers for a given 
 subscription, by way of DemandSubscription.  It is seeding DemandSubscription 
 with the originating consumer, but when subsequent consumers are added, the 
 ConduitBridge::addToAlreadyInterestedConsumers re-adds the original 
 subscriber to the DemandSubscription's map - so the map only ever has the 
 original subscription.
 I've attached a patch.  Hope the change is good.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira