RMIサーバーに接続してpostgresqlデータベースと通信するjdbcクライアントがあります。この rmi サーバーには、単純な ConnectionManager コードがあります。
public class ConnectionManager {
private ConnectionManager(){};
private static boolean driverLoad = false;
private static final String pgDriver="org.postgresql.Driver";
private static final String pgUrl = dbc:postgresql://localhost:5434/franchising_db";
private static final String user = "postgres";
private static final String pass = "password";
public static Connection getConnection() throws ClassNotFoundException, SQLException {
if(!driverLoad) {
Class.forName(pgDriver);
driverLoad = true;
}
return DriverManager.getConnection(pgUrl, user, pass);
}
}
現在、postgresql には 30 の最新の接続の制限がありますが、この種の ConnectionManager はこのユース ケースを回避しません。定義された数の接続 (たとえば 5) を作成し、クライアントが getConnection メソッドを呼び出したときに、接続が利用可能な場合はそれを返し、すべての接続がビジーの場合、クライアントは最初の空き接続を待ちます。それを行うには、そのコードをどのように変更すればよいですか?