}
private static void createNewDatasources_Postgres(ModelControllerClient mcc) throws Exception {
final HashMap<String, String> props = new HashMap<String, String>(4);
final DatasourceJBossASClient client = new DatasourceJBossASClient(mcc);
ModelNode noTxDsRequest = null;
ModelNode xaDsRequest = null;
if (!client.isDatasource(RHQ_DATASOURCE_NAME_NOTX)) {
props.put("char.encoding", "UTF-8");
noTxDsRequest = client.createNewDatasourceRequest(RHQ_DATASOURCE_NAME_NOTX, 30000,
"${rhq.server.database.connection-url:jdbc:postgresql://127.0.0.1:5432/rhq}", JDBC_DRIVER_POSTGRES,
"org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter", 15, false, 2, 5, 75,
RHQ_DS_SECURITY_DOMAIN_NOTX, "-unused-stale-conn-checker-", "TRANSACTION_READ_COMMITTED",
"org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker", true, props);
noTxDsRequest.get("steps").get(0).remove("stale-connection-checker-class-name"); // we don't have one of these for postgres
} else {
LOG.info("Postgres datasource [" + RHQ_DATASOURCE_NAME_NOTX + "] already exists");
}
if (!client.isXADatasource(RHQ_DATASOURCE_NAME_XA)) {
props.clear();
props.put("ServerName", "${rhq.server.database.server-name:127.0.0.1}");
props.put("PortNumber", "${rhq.server.database.port:5432}");
props.put("DatabaseName", "${rhq.server.database.db-name:rhq}");
xaDsRequest = client.createNewXADatasourceRequest(RHQ_DATASOURCE_NAME_XA, 30000, JDBC_DRIVER_POSTGRES,
XA_DATASOURCE_CLASS_POSTGRES,
"org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter", 15, 5, 50, null,
null, 75, null, RHQ_DS_SECURITY_DOMAIN_XA, null,
"TRANSACTION_READ_COMMITTED",
"org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker", props);
} else {
LOG.info("Postgres XA datasource [" + RHQ_DATASOURCE_NAME_XA + "] already exists");
}
if (noTxDsRequest != null || xaDsRequest != null) {
ModelNode batch = DatasourceJBossASClient.createBatchRequest(noTxDsRequest, xaDsRequest);
ModelNode results = client.execute(batch);
if (!DatasourceJBossASClient.isSuccess(results)) {
throw new FailureException(results, "Failed to create Postgres datasources");
}
}
}