Here are the practical methods to connect WebMethods to Cloud SQL PostgreSQL using service accounts:
Method 1: Cloud SQL Java Connector (Recommended)
Step 1: Add Required JAR Files
Copy these JAR files to your WebMethods server:
Copy to: IntegrationServer/instances/default/packages/WmJDBCAdapter/code/jars/
Restart Integration Server after adding JARs.
Step 2: Configure JDBC Connection in WebMethods
In WebMethods Administrator:
-
Go to Administration → Adapters → JDBC Adapter
-
Create new Database Connection
-
Use these settings:
Database Type: PostgreSQL
Driver Class: org.postgresql.Driver
Connection URL: jdbc:postgresql:///<YOUR_DATABASE_NAME>?socketFactory=com.google.cloud.sql.postgres.SocketFactory&cloudSqlInstance=YOUR_PROJECT:YOUR_REGION:YOUR_INSTANCE_NAME&enableIamAuth=true&sslmode=require
User Name: YOUR_IAM_DATABASE_USER@YOUR_PROJECT.iam
Password: [leave empty]
Example Connection URL:
jdbc:postgresql:///orders_db?socketFactory=com.google.cloud.sql.postgres.SocketFactory&cloudSqlInstance=myproject:us-central1:production-instance&enableIamAuth=true&sslmode=require
Step 3: Set Up Service Account
-
Create service account key JSON file
-
Set environment variable on server:
export GOOGLE_APPLICATION_CREDENTIALS="/opt/softwareag/credentials/service-account.json"
Method 2: Cloud SQL Auth Proxy
Step 1: Install and Run Auth Proxy
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
chmod +x cloud_sql_proxy
./cloud_sql_proxy -instances="your-project:region:instance-name"=tcp:5432 -credential_file=/path/to/service-account.json &
Step 2: WebMethods JDBC Configuration
Driver Class: org.postgresql.Driver
Connection URL: jdbc:postgresql://localhost:5432/your_database
User Name: your-iam-database-user@your-project.iam
Password: [leave empty]
Prerequisites Checklist
1. Cloud SQL Setup:
CREATE USER "your-sa@your-project.iam" WITH LOGIN;
GRANT ALL PRIVILEGES ON DATABASE your_db TO "your-sa@your-project.iam";
2. IAM Permissions:
Service account needs these roles:
-
roles/cloudsql.client
-
Project IAM permissions
3. Network:
Testing the Connection
-
Create a simple flow service in WebMethods
-
Use pub.adapters.jdbc:executeUpdate or pub.adapters.jdbc:executeQuery
-
Test with simple SQL: SELECT 1 as test
Troubleshooting Common Issues
Class Not Found:
-
Verify JAR files are in correct location
-
Check JAR versions compatibility
-
Restart Integration Server
Authentication Failed:
-
Verify service account has correct IAM roles
-
Check IAM database user exists in Cloud SQL
-
Confirm service account key file path is correct
Connection Timeout:
This approach works reliably in production environments with WebMethods JDBC adapter. The Java Connector method (Method 1) is preferred as it doesn't require maintaining additional proxy processes.