Question

I have a connection pool setup properly on Glassfish 3.1.2.2. This is working properly.

My setup is to multiple slave database servers, therefore the URL property of my jdbc-connection-pool. This one looks like so:

jdbc:mysql:loadbalance://my.database.host1,my.database.host2/dbName

Once again, functional. We then have a Chef server that, when slaves are overloaded, spins up a new one. It then modifies the domain.xml of my web servers to append the new host to the URL property. I now have:

jdbc:mysql:loadbalance://my.database.host1,my.database.host2,newly.created.host/dbName

Our current solution is to restart Glassfish in order to have the new values taken into account. This has the consequence that it kicks out all who have a session with said server, among other negative impacts. Is there a way to get these values reloaded without restarting the server? - On the fly/dynamically.

Was it helpful?

Solution

I just figured this one out! I, and I would assume many others from reading on different forums have forgotten about the RESTful admin interface to Glassfish.

By updating the URL for the connection pool via REST, I can update the value without having to reset the server instance.

Here is the cURL request I am using:

curl –X POST –H ”X-Requested-By: Glassfish REST HTML Interface” 
    –d “value=jdbc:mysql://my.database.host1,my.database.host2,newly.created.host/dbname” 
    –u “username”:”password” 
    https://admin.host.url:4848/management/domain/resources/jdbc-connection-pool/poolname/property/URL 
    -k

I have added the -k since my security certificate isn't in my cacert file and I wanted to save time for the moment. It would be better practice to have cURL validate your security certificate.

Useful Links:

OTHER TIPS

I found out that if you simply want to flush the database jdbc connection pool you can use the REST interface like this:

curl –X POST –H "X-Requested-By: GlassFish REST HTML interface" –d "appname=&id=JDBC_POOLNAME&modulename=&__remove_empty_entries__=true&=flush-connection-pool" –u "USER":"PASSWORD" http://server:port/management/domain/resources/flush-connection-pool
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top