[
https://issues.apache.org/jira/browse/LOG4J2-407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13827503#comment-13827503
]
Dimitry Declercq commented on LOG4J2-407:
-----------------------------------------
I'm guessing you would want to do that before the check that throws the
AppenderLoggingExcpetion.
I created a similar solution yesterday with the intention to test this today or
tomorrow. This is probably not the best nor the cleanest solution, but rather a
quickfix that shouldn't impact performance too much.
{code}
@Override
protected void writeInternal(final LogEvent event) {
StringReader reader = null;
try {
if ( !this.isConnected() || this.connection == null ||
this.connection.isClosed() ) {
// Check if the connection has been closed
// You don't want to execute isValid always, since this
launches a query/ping to the server
if ( this.connection != null && !this.connection.isValid(3) ) {
// Try to re-establish connection with database
disconnectInternal();
connectInternal();
}
// Check if we were able to recover the connection
if ( this.connection == null || this.connection.isClosed() ) {
// Nope, connection is dead...
throw new AppenderLoggingException("Cannot write logging
event; JDBC manager not connected to the database.");
}
}
{code}
> JDBCAppender cannot recover from loss of database connectivity
> --------------------------------------------------------------
>
> Key: LOG4J2-407
> URL: https://issues.apache.org/jira/browse/LOG4J2-407
> Project: Log4j 2
> Issue Type: Bug
> Components: Appenders
> Affects Versions: 2.0-beta9
> Reporter: Michael Kloster
> Assignee: Nick Williams
>
> The JDBCAppender holds a single database connection for all its logging. If
> that database connection is closed, it does not attempt to make a new
> connection.
> Many connection pools automatically close connections after a certain amount
> of inactivity. (This can be worked around by properly configuring a pool).
> Database connectivity issues are also common enough that a long running
> application may experience temporary network issues. When the network comes
> back online, the logging will not resume.
> I've been meaning to submit a patch for this, but I haven't gotten to it.
> Since I saw that you are looking to come out of beta soon, I thought I would
> log this issue in case someone else has time to write the patch before I get
> to it.
--
This message was sent by Atlassian JIRA
(v6.1#6144)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]