当我的应用程序检测到特定错误时,我需要刷新GlassFish中的池。在java应用程序中可以在GlassFish上执行命令吗?当出现错误时,我只需要刷新这个池。
发布于 2013-09-11 11:40:57
可以使用SSH完成此操作
public class FlushPool {
public static void flushConncetionPool(String nameConnectionPool){
Session session = null;
Channel channel = null;
JSch jsch = new JSch();
try {
session = jsch.getSession("username", "host", port);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.setPassword("password");
session.connect();
channel = session.openChannel("shell");
OutputStream ops = channel.getOutputStream();
PrintStream ps = new PrintStream(ops, true);
channel.connect();
ps.println("sudo su -");
ps.println("/app/glassfish/glassfish/bin/asadmin --user admin --passwordfile password.txt flush-connection-pool " + nameConnectionPool);
session.diconect();
channel.disconect();
}catch(Exception e){
// do something
}
}
}
password.txt必须在服务器端
AS_ADMIN_PASSWORD = senha
AS_ADMIN_ADMIN_PASSWORD = senha
AS_ADMIN_USERPASSWORD=senha
AS_ADMIN_MASTERPASSWORD= senha
https://stackoverflow.com/questions/18719342
复制相似问题