attrList.put(ResourceConstants.CONNECTOR_CONNECTION_POOL_NAME, poolname);
attrList.put(ResourceConstants.CONN_TRANSACTION_SUPPORT, transactionsupport);
attrList.put(ResourceConstants.PING, ping.toString());
attrList.put(ResourceConstants.POOLING, pooling.toString());
ResourceStatus rs;
try {
ConnectorConnectionPoolManager connPoolMgr = habitat.getComponent(ConnectorConnectionPoolManager.class);
rs = connPoolMgr.create(domain.getResources(), attrList, properties, target);
} catch(Exception e) {
Logger.getLogger(CreateConnectorConnectionPool.class.getName()).log(Level.SEVERE,
"Unable to create connector connection pool " + poolname, e);
String def = "Connector connection pool: {0} could not be created, reason: {1}";
report.setMessage(localStrings.getLocalString("create.connector.connection.pool.fail",
def, poolname) + " " + e.getLocalizedMessage());
report.setActionExitCode(ActionReport.ExitCode.FAILURE);
report.setFailureCause(e);
return;
}
ActionReport.ExitCode ec = ActionReport.ExitCode.SUCCESS;
if (rs.getStatus() == ResourceStatus.FAILURE) {
ec = ActionReport.ExitCode.FAILURE;
if (rs.getMessage() != null) {
report.setMessage(rs.getMessage());
} else {
report.setMessage(localStrings.getLocalString("create.connector.connection.pool.fail",
"Connector connection pool {0} creation failed", poolname, ""));
}
if (rs.getException() != null)
report.setFailureCause(rs.getException());
} else {
//TODO only for DAS ?
if ("true".equalsIgnoreCase(ping.toString())) {
ActionReport subReport = report.addSubActionsReport();
ParameterMap parameters = new ParameterMap();
parameters.set("pool_name", poolname);
commandRunner.getCommandInvocation("ping-connection-pool", subReport).parameters(parameters).execute();
if (ActionReport.ExitCode.FAILURE.equals(subReport.getActionExitCode())) {
subReport.setMessage(localStrings.getLocalString("ping.create.connector.connection.pool.fail",
"\nAttempting to ping during Connector Connection " +
"Pool Creation : {0} - Failed.", poolname));
subReport.setActionExitCode(ActionReport.ExitCode.FAILURE);
} else {
subReport.setMessage(localStrings.getLocalString("ping.create.connector.connection.pool.success",
"\nAttempting to ping during Connector Connection " +
"Pool Creation : {0} - Succeeded.", poolname));
}
}
}
if (rs.getMessage() != null) {
report.setMessage(rs.getMessage());
}
report.setActionExitCode(ec);
}