This section provides
a high-level and simple overview of the JBoss configuration needed
to use the SAS drivers. It is assumed that you have JBoss installed,
running, and operational. Note that this is just an example. JBoss
is not recommended over other application servers.
Ensure that the JAR
files for the SAS driver are located within the
lib
directory for the server:
$ pwd
.../jboss/jboss-4.2.0.GA/server/SASServer1
$ ls lib/sas.*.jar
lib/sas.core.jar
lib/sas.svc.connection.jar
Edit or create a data
source XML file in the
deploy
directory:
$ cat deploy/iom-ds.xml
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>sas/jdbc/Iom</jndi-name>
<connection-url>
jdbc:sasiom://localhost:8591?librefs=
HELP 'C:\Program Files\SASHome\SASFoundation\9.3\core\sashelp'
</connection-url>
<driver-class>com.sas.rio.MVADriver</driver-class>
<user-name>sasdemo</user-name>
<password>{sas001}cGFzc3dvcmQ=</password>
<min-pool-size>10</min-pool-size>
<max-pool-size>50</max-pool-size>
</local-tx-datasource>
</datasources>
Identify the DataSource
jndi-name
value as shown in the following example:
<%@page contentType="text/html"
import="java.util.*,javax.naming.*,javax.sql.DataSource,
java.sql.*,java.net.*,java.io.*"
%>
<html>
<body>
<p>Count of Subsidiaries by Region and Product</p>
<%
DataSource ds = null;
Connection con = null;
InitialContext ic;
String query = "SELECT REGION, PRODUCT, COUNT(SUBSIDIARY) " +
"FROM HELP.shoes GROUP BY REGION, PRODUCT";
String nbsp = " ";
try {
ic = new InitialContext();
ds = (DataSource) ic.lookup("java:/sas/jdbc/Iom");
con = ds.getConnection();
ResultSet rs = con.createStatement().executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
int colCount = rsmd.getColumnCount();
out.println("<TABLE border='1'>");
out.println("<TR>");
for (int i = 1; i <= colCount; ++i) {
out.println("<TH>" + rsmd.getColumnLabel(i) + "</TH>");
}
out.println("</TR>");
String val = null;
while (rs.next()) {
out.print("<TR>");
for (int i = 1; i <= colCount; ++i) {
val = rs.getString(i);
if (rs.wasNull()) {
val = nbsp;
}
out.print("<TD>" + val + "</TD>");
}
out.println("</TR>");
}
out.println("</TABLE>");
rs.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
%>
</body>
</html>