H! I'm trying to use a Bridge to Oracle JMS.
I have a embeded Broker with a local persistant Queue and a bridge to Oracle. If all systems are fine, no problems. ------------- BrokerService broker = new BrokerService(); JmsQueueConnector jmsQueueConnector = new JmsQueueConnector(); QueueConnection createQueueConnection = new QueueConnectionWrap(queueConnectionFactory.createQueueConnection()); createQueueConnection.start(); jmsQueueConnector.setOutboundQueueConnection(createQueueConnection); OutboundQueueBridge outboundQueueBridge = new OutboundQueueBridge("DEV_MSGQ"); outboundQueueBridge.setLocalQueueName("SUBJECT"); jmsQueueConnector.setOutboundQueueBridges(new OutboundQueueBridge[] { outboundQueueBridge }); broker.setJmsBridgeConnectors(new JmsConnector[] { jmsQueueConnector }); broker.setBrokerName("fred"); broker.setPersistent(true); broker.start(); --------- The problems coming when the Oracle Server goes down: The Sender of the Queue does not try to reconnect. I wraped the QueueConnection/QueueSession/Sender and now a Exception in Sender.sendMessage() gets a new QueueSession, a new Queue and a new Sender so I can reconnect. If my reconnection its not successful an I throw a Exception in Sender.sendMessage, the message is removed from the Queue anyway and its lost: 2010-02-19 22:50:21,843 ERROR DestinationBridge onMessage - failed to forward message on attempt: 1 reason: oracle.jms.AQjmsException: I/O Exception: The Network Adapter could not establish the connection message: ActiveMQTextMessage {commandId = 82, responseRequired = false, messageId = ID:NBK092-1401-1266616208578-2:1:1:20:1, originalDestination = null, originalTransactionId = null, producerId = ID:NBK092-1401-1266616208578-2:1:1:20, destination = queue://SUBJECT, transactionId = TX:ID:NBK092-1401-1266616208578-2:1:20, expiration = 0, timestamp = 1266616216390, arrival = 0, brokerInTime = 1266616216390, brokerOutTime = 1266616216468, correlationId = null, replyTo = null, persistent = true, type = null, priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = null, marshalledProperties = null, dataStructure = null, redeliveryCounter = 0, size = 1032, properties = null, readOnlyProperties = true, readOnlyBody = true, droppable = false, text = TEST} oracle.jms.AQjmsException: I/O Exception: The Network Adapter could not establish the connection at oracle.jms.AQjmsDBConnMgr.checkForSecurityException(AQjmsDBConnMgr.java:934) at oracle.jms.AQjmsDBConnMgr.getConnection(AQjmsDBConnMgr.java:609) at oracle.jms.AQjmsConnection.createQueueSession(AQjmsConnection.java:646) at org.test.QueueSessionWrap.reconnect(QueueSessionWrap.java:473) at org.test.QueueSenderWrap.send(QueueSenderWrap.java:186) at org.apache.activemq.network.jms.QueueBridge.sendMessage(QueueBridge.java:80) at org.apache.activemq.network.jms.DestinationBridge.onMessage(DestinationBridge.java:130) at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088) at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127) at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197) at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122) at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: java.sql.SQLRecoverableException: I/O Exception: The Network Adapter could not establish the connection at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:101) at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:229) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:458) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:411) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:490) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:202) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:465) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:207) at oracle.jms.AQjmsDBConnMgr.getConnection(AQjmsDBConnMgr.java:575) ... 13 more The Message ID:NBK092-1401-1266616208578-2:1:1:20:1 is lost now. The Bridge should roll this transaction back. What can I do? Thanks Juergen -- View this message in context: http://old.nabble.com/Bridging-not-working-reliable-tp27661175p27661175.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.