Я использую grails 2.5.1
, и моя IDE - IntelliJ
, когда я что-то меняю в своих контроллерах, я получаю приведенную ниже ошибку в консоли и продолжаю происходить, пока я не перезагружаю грааль, какая-нибудь идея, что это?
spi.SqlExceptionHelper , [Thread-11] Timeout: Pool empty. Unable to fetch a connection in 30 seconds, none available[size:100; busy:10; idle:0; lastwait:30000].
У меня есть контроллер, который регистрирует в БД вот оно:
class EventLogAppender extends org.apache.log4j.AppenderSkeleton
implements org.apache.log4j.Appender{
static appInitialized = false
String source
@Override
protected void append(LoggingEvent event) {
if (appInitialized) {
//copied from Log4J's JDBCAppender
event.getNDC();
event.getThreadName();
// Get a copy of this thread's MDC.
event.getMDCCopy();
event.getLocationInformation();
event.getRenderedMessage();
event.getThrowableStrRep();
def limit = { string, maxLength -> string.substring(0, Math.min(string.length(), maxLength))}
String logStatement = getLayout().format(event);
// use new transaction so that the log entry will be written even if the currently running transaction is rolled back
EventLog.withNewTransaction {
EventLog eventLog = new EventLog()
eventLog.message = "Log4 Error Log"
eventLog.details = limit((logStatement ?: "Not details available, something is wrong"), EventLog.DETAILS_MAXSIZE)
eventLog.source = limit(source ?: "Source not set", EventLog.SOURCE_MAXSIZE)
eventLog.save()
}
}
}
/**
* Set the source value for the logger (e.g. which application the logger belongs to)
* @param source
*/
public void setSource(String source) {
this.source = source
}
@Override
void close() {
//noop
}
@Override
boolean requiresLayout() {
return true
}
}