"A C3P0Registry mbean is already registered. This probably means that an application using c3p0 was undeployed, but not all PooledDataSources were closed prior to undeployment. This may lead to resource leaks over time. Please take care to close all PooledDataSources."
Na forum hibernate znalazłem informację, że trzeba w systemie ustawić zmienną:
com.mchange.v2.c3p0.management.ManagementCoordinator=com.mchange.v2.c3p0.management.NullManagementCoordinator
Niestety powyższe rozwiązanie nie wchodziło w rachubę (każdy z klientów musiałby zmodyfikować swój skrypt uruchamiający Tomcata). Jedyne sensowne rozwiązanie jakie przychodziło mi do głowy, to zmuszenie Springa do zadziałania.
Trochę się naszukałem, aż w końcu znalazłem jedno (niepoprawne) rozwiązanie mojego problemu. Po zmianach i uproszczeniach uzyskałem działającego bean'a :)
Oto on:
<bean id="sysprops" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass">
<value>java.lang.System</value>
</property>
<property name="targetMethod">
<value>setProperty</value>
</property>
<property name="arguments">
<list>
<value>com.mchange.v2.c3p0.management.ManagementCoordinator</value>
<value>com.mchange.v2.c3p0.management.NullManagementCoordinator</value>
</list>
</property>
</bean>
Gdyby kogoś interesowało, dlaczego taka a nie inna zmienna musiała być ustawiona, to zapraszam na forum hibernate.
