Open Roads Consulting, Inc.


Project page
Mailing list

What is SoapDBC?

SoapDBC is an attempt to write a general purpose SOAP service to provide database access and queries similar to JDBC. Accessing remote databases using JDBC can be chalanging, especially if firewalls are involved. By using the standard SOAP protocol, remote databases are accessed via the http transport which is very firewall friendly.

How does it work?

The client sends a SQL command to the soap service, the service uses JDBC to execute the query against a local database. The service then returns the client an integer ID referencing the open query. The client then uses this ID to fetch records from the SOAP service. The records are send back as an XML message. Standard Java bindings are used to simplify access to the records and fields within the XML message.

Example client

The following is a simplified client program that uses the SoapDBC service.
BigInteger queryID = null;
String sql = "select * from data_base_table";
String defaultURL = "http://remotehost:8080/SoapDBC/services/SoapDBC";

try {
	// get remote service
	Options opts = new Options(new String[0]);
	SoapDBCService sdbcLocator = new SoapDBCServiceLocator();
	SoapDBC sdbc = sdbcLocator.getSoapDBC(new URL(defaultURL));
	((SoapDBCBindingStub) sdbc).setMaintainSession (true);

	// open query dataset
	queryID = sdbc.executeQuery(sql);
	// get single record
	SdbcRecord rec = sdbc.getNext(queryID);
	// get batch records
	SdbcRecordSet recSet = sdbc.getBatch(queryID, BigInteger.valueOf(10));
	// close query dataset
} catch (Exception e) {

Want more information?

Please feel free to e-mail me (David R Robison) with any questions regarding this tool! This project is sponsored by Open Roads Consulting, Inc. Logo