What SLF4J logging implementation are you using for the client itself? We typically use log4j also, which could cause initialisation problems in this situation due to the client attempting to log during the connection creation, which will need log4j to have initialised your appender that requires a connection to work (which will attempt to log during its creation)...
Robbie On 9 Apr 2014 09:29, "Miguel Madinaveitia" <[email protected]> wrote: > Hello everyone. > I have a problem when trying to connect to Qpid server, the class > AMQConnection fails giving a timeout error, this only happens if I include > this code in a log4j appender, if I put the same code outside the appender > the connection works well. > > the goal is to write all the log4j messages to a qpid server using a log4j > appender. > > any ideas?? > > > the appender > > code....--------------------------------------------------------------------- > > > package com.wfg.testqpid.appender; > > import java.util.Date; > import org.apache.log4j.AppenderSkeleton; > import org.apache.log4j.helpers.LogLog; > import org.apache.log4j.spi.ErrorCode; > import org.apache.log4j.spi.LoggingEvent; > > import javax.jms.Connection; > import javax.jms.Session; > import org.apache.qpid.client.AMQConnection; > import org.apache.qpid.jms.ConnectionURL; > > public class JMSAppenderQPIDQ2 extends AppenderSkeleton{ > > private Session session = null; > private AMQConnection connection = null; > > private static String url = > "amqp://test:nolose@clientid/test?brokerlist='tcp://localhost:5672'"; > private boolean TRANSACTED = false; > > > public void activateOptions() { > try { > > System.out.println("version 2"); > System.out.println(url); > > connection = new AMQConnection(url); > connection.start(); > > System.out.println("we start the connection"); > > session = connection.createSession(TRANSACTED, > Session.AUTO_ACKNOWLEDGE); > > System.out.println("OK TEST "+ new Date()); > } catch (Exception e) { > e.printStackTrace(); > } > } > > > public void append(LoggingEvent event) { > } > > public boolean requiresLayout() { > return false; > } > > public synchronized void close() { > } > > } > > > > the log4j properties.. > -------------------------------------------------------------------- > > log4j.rootCategory=ALL, CONSOLE, JMSQpidQ > > log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender > log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout > log4j.appender.CONSOLE.layout.ConversionPattern = %d{HH:mm:ss} [%p] %m%n > > log4j.appender.FILE = org.apache.log4j.DailyRollingFileAppender > log4j.appender.FILE.file = /home/miguel/prueba.log > log4j.appender.FILE.append = true > log4j.appender.FILE.DatePattern = '.'yyyyMMdd > log4j.appender.FILE.layout = org.apache.log4j.PatternLayout > log4j.appender.FILE.layout.ConversionPattern = %d{HH:mm:ss} [%p] %m%n > > log4j.appender.JMSQpidQ = com.wfg.testqpid.appender.JMSAppenderQPIDQ2 > > the test class > ..................------------------------------------------------------- > > package com.wfg.testqpid; > > import java.net.URL; > import java.util.Date; > > import org.apache.log4j.Logger; > import org.apache.log4j.PropertyConfigurator; > import org.apache.log4j.helpers.Loader; > > > > public class TheTest { > static Logger logger = Logger.getLogger(TheTest.class); > > public TheTest() { > super(); > URL url = Loader.getResource("log4j.properties"); > PropertyConfigurator.configure(url); > } > > public void generaTest(){ > logger.info("Start"+ new Date()); > logger.info("End "+ new Date()); > } > > public static void main(String[] args) { > new TheTest().generaTest(); > System.exit(0); > } > > } > > > the error log... > ------------------------------------------------------------- > > version 2 > amqp://test:nolose@clientid/test?brokerlist='tcp://localhost:5672' > 17:50:57 [DEBUG] > > Connection(1):amqp://test:********@clientid/test?brokerlist='tcp://localhost:5672' > 17:50:57 [DEBUG] AMQP version 0-10 > 17:50:57 [DEBUG] Using ProtocolVersion for Session:0-10 > 17:50:57 [DEBUG] New Method Dispatcher:AMQProtocolSession[null] > 17:50:57 [DEBUG] Creating content header body factory > 17:50:57 [DEBUG] Creating content body factory > 17:50:57 [DEBUG] Connecting with ProtocolHandler Version:0-10 > 17:50:57 [DEBUG] connecting to host: localhost port: 5672 vhost: test > username: test password: ******** > 17:50:57 [DEBUG] SO_RCVBUF : 65535 > 17:50:57 [DEBUG] SO_SNDBUF : 65535 > 17:50:57 [DEBUG] TCP_NODELAY : true > 17:50:57 [DEBUG] SEND: [conn:6de1dadb] AMQP.1 0-10 > 17:52:57 [INFO] Unable to connect to broker at tcp://localhost:5672 > org.apache.qpid.AMQException: Cannot connect to broker: close() timed out > [error code 200: reply success] > at > > org.apache.qpid.client.AMQConnectionDelegate_0_10.makeBrokerConnection(AMQConnectionDelegate_0_10.java:241) > at > > org.apache.qpid.client.AMQConnection.makeBrokerConnection(AMQConnection.java:604) > at > org.apache.qpid.client.AMQConnection.<init>(AMQConnection.java:383) > at > org.apache.qpid.client.AMQConnection.<init>(AMQConnection.java:219) > at > > com.wfg.testqpid.appender.JMSAppenderQPIDQ2.activateOptions(JMSAppenderQPIDQ2.java:56) > at > org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) > at > > org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) > at > > org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) > at > > org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842) > at > > org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) > at > > org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648) > at > > org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514) > at > > org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580) > at > > org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526) > at org.apache.log4j.LogManager.<clinit>(LogManager.java:127) > at org.apache.log4j.Logger.getLogger(Logger.java:117) > at com.wfg.testqpid.TheTest.<clinit>(TheTest.java:16) > Caused by: org.apache.qpid.transport.ConnectionException: close() timed out > at org.apache.qpid.transport.Connection.close(Connection.java:640) > at org.apache.qpid.transport.Connection.close(Connection.java:581) > at > org.apache.qpid.transport.Connection.connect(Connection.java:273) > at > > org.apache.qpid.client.AMQConnectionDelegate_0_10.makeBrokerConnection(AMQConnectionDelegate_0_10.java:221) > ... 16 more > org.apache.qpid.AMQConnectionFailureException: close() timed out [error > code > 200: reply success] > at > org.apache.qpid.client.AMQConnection.<init>(AMQConnection.java:460) > at > org.apache.qpid.client.AMQConnection.<init>(AMQConnection.java:219) > at > > com.wfg.testqpid.appender.JMSAppenderQPIDQ2.activateOptions(JMSAppenderQPIDQ2.java:56) > at > org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307) > at > > org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172) > at > > org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104) > at > > org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)17:52:57 > [DEBUG] All failover methods exhausted > 17:52:57 [DEBUG] Are we connected:false > 17:52:57 [DEBUG] Last attempted ProtocolHandler Version:0-10 > 17:50:57 [DEBUG] RECV: [conn:6de1dadb] AMQP.1 0-10 > > at > > org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768) > at > > org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648) > at > > org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514) > at > > org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:580) > at > > org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526) > at org.apache.log4j.LogManager.<clinit>(LogManager.java:127) > at org.apache.log4j.Logger.getLogger(Logger.java:117) > at com.wfg.testqpid.TheTest.<clinit>(TheTest.java:16) > Caused by: org.apache.qpid.AMQException: Cannot connect to broker: close() > timed out [error code 200: reply success] > at > > org.apache.qpid.client.AMQConnectionDelegate_0_10.makeBrokerConnection(AMQConnectionDelegate_0_10.java:241) > at > > org.apache.qpid.client.AMQConnection.makeBrokerConnection(AMQConnection.java:604) > at > org.apache.qpid.client.AMQConnection.<init>(AMQConnection.java:383) > ... 14 more > Caused by: org.apache.qpid.transport.ConnectionException: close() timed out > at org.apache.qpid.transport.Connection.close(Connection.java:640) > at org.apache.qpid.transport.Connection.close(Connection.java:581) > at > org.apache.qpid.transport.Connection.connect(Connection.java:273) > at > > org.apache.qpid.client.AMQConnectionDelegate_0_10.makeBrokerConnection(AMQConnectionDelegate_0_10.java:221) > ... 16 more > > > > > > -- > View this message in context: > http://qpid.2158936.n2.nabble.com/The-AMQConnection-class-fail-to-connect-when-use-in-log4j-appender-tp7606582.html > Sent from the Apache Qpid users mailing list archive at Nabble.com. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
