Hi, I've never uploaded a patch before. Any tutorial for that ?
regards, gimel Dejan Bosanac-3 wrote: > > Hi, > > can you create a patch a submit it with the JIRA issue > (http://issues.apache.org/activemq/browse/AMQ) > > Cheers > > -- > Dejan Bosanac > > > http://www.ttmsolutions.com - get a free ActiveMQ user guide > > ActiveMQ in Action - http://www.manning.com/snyder/ > Scripting in Java - http://www.scriptinginjava.net > > > > gimel wrote: >> Hi all, >> >> I'm running 2 brokers (activemq 5.1.0) on 2 different machines, in >> failover >> mode, where the shared folder is on NAS. >> I run into a certain problem (too many times) that as Broker A falls, >> Broker >> B is coming up, but the activemq fails to start the derbydb. >> >> error is like : >> 2008-09-21 03:23:01,783 [erSimpleAppMain] DEBUG JDBCPersistenceAdapter - >> Could not get JDBC connection: Failed to start database 'derbydb', see >> the >> next exception for details., due to: Another instance of Derby may have >> already booted the database \\IP\broker\derbydb. >> ERROR XSDB6: Another instance of Derby may have already booted the >> database >> \\IP\broker\derbydb. >> >> partial stack-trace : >> at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(Unknown Source) >> at >> org.apache.activemq.store.jdbc.TransactionContext.getConnection(TransactionContext.java:54) >> at >> org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.createAdapter(JDBCPersistenceAdapter.java:294) >> at >> org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.getAdapter(JDBCPersistenceAdapter.java:249) >> at >> org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.start(JDBCPersistenceAdapter.java:155) >> at >> org.apache.activemq.store.journal.JournalPersistenceAdapter.start(JournalPersistenceAdapter.java:226) >> at >> org.apache.activemq.broker.BrokerService.createRegionBroker(BrokerService.java:1577) >> at >> org.apache.activemq.broker.BrokerService.createBroker(BrokerService.java:1530) >> at >> org.apache.activemq.broker.BrokerService.getBroker(BrokerService.java:540) >> at >> org.apache.activemq.broker.BrokerService.start(BrokerService.java:444) >> >> i know, i could also ask the derby developers, but i see that a retry for >> the connection is working as well. i think i'd try to patch the >> org/apache/activemq/store/jdbc/TransactionContext.java, >> and i'd like you to tell me which jars i need to modify in the broker. >> also, if possible, i'd love to get an opinion on the method i've modified >> in >> this class. >> i simply added retries, and after 5 times, i quit, in order to let the >> other >> broker to try as well : >> >> >> public Connection getConnection() throws IOException { >> boolean shouldRetry = true; >> final int MAX_RETRIES = 5; >> final int SLEEP_INTERVAL = 1000; >> >> for (int countLoops = 0 ; (countLoops < MAX_RETRIES) && >> shouldRetry; >> ++countLoops) >> { >> if (connection == null) { >> try { >> connection = dataSource.getConnection(); >> boolean autoCommit = !inTx; >> if (connection.getAutoCommit() != autoCommit) { >> connection.setAutoCommit(autoCommit); >> } >> shouldRetry = false; >> } catch (SQLException e) { >> JDBCPersistenceAdapter.log("Could not get JDBC >> connection: ", e); >> LOG.debug(" *** retries count = " + countLoops, e); >> if (countLoops + 1 == MAX_RETRIES) >> { >> IOException ioe = IOExceptionSupport.create(e); >> LOG.debug("gave up on trying to reconnect to the >> DB >> after " + MAX_RETRIES + "retries !!!", >> ioe); >> System.exit(0); >> } >> try { >> // if reached the 'catch', and didn't throw an >> exception, better sleep ... >> Thread.sleep(SLEEP_INTERVAL); >> } catch (InterruptedException e1) { >> } >> } >> >> if (!shouldRetry) >> { >> try { >> >> connection.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED); >> } catch (Throwable e) { >> } >> } >> } >> } >> return connection; >> } >> >> >> thanks in advance, >> gimel >> > > > > -- View this message in context: http://www.nabble.com/activemq-in-failover-mode-prints-that-derbydb-is-already-locked-tp19837555p20013044.html Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.
