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]

Reply via email to