Thanks, Jaikiran.  I will do that today or tonight.

Dale

-----Original Message-----
From: Jaikiran Pai [mailto:jai.forums2...@gmail.com] 
Sent: Monday, November 6, 2017 10:43 AM
To: users@kafka.apache.org
Subject: [EXTERNAL]Re: 0.9.0.0 Log4j appender slow startup

Can you take a couple of thread dumps with an interval of around 5 seconds each 
when that 60 second delay occurs? You can use a tool like jstack to do that. 
That might give some hint on what’s going on.

-Jaikiran

On Monday, November 6, 2017, Preston, Dale <dale.pres...@conocophillips.com>
wrote:

> (Answering now from my work email so please don't be confused.)
>
> The topic is already existing.
>
> -----Original Message-----
> From: Jaikiran Pai [mailto:jai.forums2...@gmail.com <javascript:;>]
> Sent: Sunday, November 5, 2017 10:56 PM
> To: users@kafka.apache.org <javascript:;>
> Subject: [EXTERNAL]Re: 0.9.0.0 Log4j appender slow startup
>
> Is the topic to which the message is being produced, already present 
> or is it auto created?
>
> -Jaikiran
>
>
> On 05/11/17 3:43 PM, Dale wrote:
> > I am using the 0.9.0.0 log4j appender for Kafka because I have a lot 
> > of
> apps dependent on log4j 1.2.x that cannot be upgraded to use newer versions
> of log4j.   It appears that the appender has become part of log4j code in
> later versions of both tools.
> >
> > When I start my test app, the first message takes an exact and
> consistent 60 seconds plus a couple milliseconds to go out.  The 
> second message takes right around 200 milliseconds, and all the 
> messages after that take a couple of milliseconds.  The timing from 
> message 1 to 2 could be tolerated but the 60 seconds will never work 
> since the production use case app would typically run for 20 to 30 seconds.
> >
> > For testing, I brought the appender code into my project and added 
> > some
> additional console messages so I could see what is going on.  Here’s a 
> snippet of the console output:
> >
> > ********START LOG SNIPPET*********** 
> > G:\kafkademoworkspace\testlog4jgenerator>java -Dlog4j.debug 
> > -Dlog4j.configuration=file:///g:\kafkademoworkspace\testlog4jgenerat
> > or
> > \log4j.properties -cp
> > .\;G:\kafkademoworkspace\testlog4jgenerator\target\testlog4jgenerator.
> > jar;g:\kafkademoworkspace\testlog4jgenerator\target\libs\log4j-1.2.17.
> > jar;g:\kafkademoworkspace\testlog4jgenerator\target\libs\*;g:\kafkad
> > em 
> > oworkspace\testlog4jgenerator\target\libs\kafka-clients-0.9.0.0.jar
> > com.mydomainname.messaging.testlog4jgenerator.LogGenerator
> > log4j: Using URL 
> > [file:/g:/kafkademoworkspace/testlog4jgenerator/log4j.properties]
> for automatic log4j configuration.
> > log4j: Reading configuration from URL 
> > file:/g:/kafkademoworkspace/testlog4jgenerator/log4j.properties
> > log4j: Parsing for [root] with value=[DEBUG,file,KAFKA].
> > log4j: Level token is [DEBUG].
> > log4j: Category root set to DEBUG
> > log4j: Parsing appender named "file".
> > log4j: Parsing layout options for "file".
> > log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd
> HH:mm:ss,SSS} %-5p %c{1}:%L - %m%n].
> > log4j: End of parsing for "file".
> > log4j: Setting property [file] to [/apps/logs/logtest.log].
> > log4j: Setting property [maxBackupIndex] to [10].
> > log4j: Setting property [maxFileSize] to [10MB].
> > log4j: setFile called: /apps/logs/logtest.log, true
> > log4j: setFile ended
> > log4j: Parsed "file" options.
> > log4j: Parsing appender named "KAFKA".
> > log4j: Parsing layout options for "KAFKA".
> > log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd
> HH:mm:ss,SSS} %-5p %c{1}:%L - %m%n].
> > log4j: End of parsing for "KAFKA".
> > log4j: Setting property [compressionType] to [none].
> > log4j: Setting property [topic] to [test].
> > log4j: Setting property [brokerList] to [localhost:9092].
> > log4j: Setting property [syncSend] to [false].
> > DPLOG: 2017-11-05T09:56:16.072Z - in Producer - creating new 
> > KafkaProducer
> > log4j: Kafka producer connected to localhost:9092
> > log4j: Logging for topic: test
> > log4j: Parsed "KAFKA" options.
> > log4j: Finished configuring.
> > ****************************************************************
> > DPLOG: 2017-11-05T09:56:16.338Z - append START
> > DPLOG: 2017-11-05T09:56:16.339Z - after subAppend.  Message is:
> 2017-11-05 03:56:16,333 DEBUG Sender:123 - Starting Kafka producer I/O 
> thread.
> >
> > log4j: [Sun Nov 05 03:56:16 CST 2017]2017-11-05 03:56:16,333 DEBUG
> Sender:123 - Starting Kafka producer I/O thread.
> >
> > DPLOG: 2017-11-05T09:56:16.342Z - getting ready to send to producer.
> > DPLOG: 2017-11-05T09:57:16.347Z - after send to producer.
> > DPLOG: 2017-11-05T09:57:16.348Z - append END
> > ****************************************************************
> > DPLOG: 2017-11-05T09:57:16.352Z - append START
> > DPLOG: 2017-11-05T09:57:16.353Z - after subAppend.  Message is:
> > 2017-11-05 03:56:16,338 INFO  root:36 - Logging message: x=0
> >
> > log4j: [Sun Nov 05 03:56:16 CST 2017]2017-11-05 03:56:16,338 INFO
> > root:36 - Logging message: x=0
> >
> > DPLOG: 2017-11-05T09:57:16.361Z - getting ready to send to producer.
> > DPLOG: 2017-11-05T09:57:16.526Z - after send to producer.
> > DPLOG: 2017-11-05T09:57:16.526Z - append END
> > ****************************************************************
> > DPLOG: 2017-11-05T09:57:16.527Z - append START
> > DPLOG: 2017-11-05T09:57:16.528Z - after subAppend.  Message is:
> > 2017-11-05 03:57:16,527 INFO  root:36 - Logging message: x=1
> >
> > log4j: [Sun Nov 05 03:57:16 CST 2017]2017-11-05 03:57:16,527 INFO
> > root:36 - Logging message: x=1
> >
> > DPLOG: 2017-11-05T09:57:16.529Z - getting ready to send to producer.
> > DPLOG: 2017-11-05T09:57:16.530Z - after send to producer.
> > DPLOG: 2017-11-05T09:57:16.530Z - append END
> > ****************************************************************
> > DPLOG: 2017-11-05T09:57:16.531Z - append START
> > DPLOG: 2017-11-05T09:57:16.531Z - after subAppend.  Message is:
> > 2017-11-05 03:57:16,531 INFO  root:36 - Logging message: x=2
> >
> > log4j: [Sun Nov 05 03:57:16 CST 2017]2017-11-05 03:57:16,531 INFO
> > root:36 - Logging message: x=2
> >
> > DPLOG: 2017-11-05T09:57:16.532Z - getting ready to send to producer.
> > DPLOG: 2017-11-05T09:57:16.533Z - after send to producer.
> > DPLOG: 2017-11-05T09:57:16.535Z - append END
> > ****************************************************************
> > DPLOG: 2017-11-05T09:57:16.536Z - append START
> > DPLOG: 2017-11-05T09:57:16.536Z - after subAppend.  Message is:
> > 2017-11-05 03:57:16,536 INFO  root:36 - Logging message: x=3
> >
> > log4j: [Sun Nov 05 03:57:16 CST 2017]2017-11-05 03:57:16,536 INFO
> > root:36 - Logging message: x=3
> >
> > DPLOG: 2017-11-05T09:57:16.538Z - getting ready to send to producer.
> > DPLOG: 2017-11-05T09:57:16.538Z - after send to producer.
> > DPLOG: 2017-11-05T09:57:16.538Z - append END
> > ****************************************************************
> > DPLOG: 2017-11-05T09:57:16.539Z - append START
> > DPLOG: 2017-11-05T09:57:16.540Z - after subAppend.  Message is:
> > 2017-11-05 03:57:16,539 INFO  root:36 - Logging message: x=4
> >
> > log4j: [Sun Nov 05 03:57:16 CST 2017]2017-11-05 03:57:16,539 INFO
> > root:36 - Logging message: x=4
> >
> > DPLOG: 2017-11-05T09:57:16.541Z - getting ready to send to producer.
> > DPLOG: 2017-11-05T09:57:16.542Z - after send to producer.
> > DPLOG: 2017-11-05T09:57:16.542Z - append END
> > ****************************************************************
> > ********END LOG SNIPPET***********
> >
> >
> >
> > The code, modified for logging, for sending to the producer is:
> > ********START CODE SNIPPET***********
> > System.out.println("DPLOG: " + Instant.now().toString() + " - 
> > getting ready to send to producer."); Future<RecordMetadata> 
> > response = producer.send(new ProducerRecord<byte[], byte[]>(topic, 
> > message.getBytes()));
> > System.out.println("DPLOG: " + Instant.now().toString() + " - after 
> > send to producer."); ********END CODE SNIPPET***********
> >
> > I have not been able to find any timeout of 60 seconds (60000 ms)
> anywhere but it is clear that something is happening that is exactly 
> 60 seconds at the start of the run.  Whatever the timeout is, it is 
> not breaking because the messages are sent to kafka.  I’ve searched 
> the KafkaProducer code and kafka server configuration looking for any 
> 60 second timeout reference and cannot find one.  In what few examples 
> I could find online of log data using the producer, I see the Starting 
> kafka producer I/O thread with the next log entries in the same second 
> so the 60 second delay I am seeing does not always appear to be there 
> but it’s always there in my case.  Any ideas what could be causing it 
> and/or how I can get rid of it?
> >
> > Thanks,
> >
> > Dale
> >
>
>

Reply via email to