Post Reply 
Thread Rating:
  • 1 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Use a connection cache from JSP
12-15-2010, 01:34 AM
Post: #1
Use a connection cache from JSP
Jaguar provides a very useful cache mechanism to speed up database requests. You can have ODBC, JDBC or Oracle cached connections.

NOTE: Java component can't use cached ODBC connection, you need to use a cached JDBC connection. If there is no JDBC driver available, it's still possible to use the ODBC-JDBC provided by Sun. But performance of such a bridge is poor and the reliability is not good in a multi-threaded environment.

To define a cache using ODBC-JDBC (bridge) connection, follow these steps:

1. Define a regular System DSN (through the ODBC Administration panel)
2. In jaguar, you define the cache :
1. General Tab : Server name = jdbc:odbc:YourSystemDSNName with user/pwd
2. Driver Tab : DLL or class name = sun.jdbc.odbc.JdbcOdbcDriver with JDBC radio button selected
3. Cache Tab : checkbox cache-by-name checked

<%@page contentType="text/html"%>
<head><title>JSP Page</title></head>
<%@ page import="java.sql.*" %>
<% jcmCache= null;
java.sql.Connection dbConn = null;
String jcmCacheString = "mycachename";
String msg = "";

try {
jcmCache =;
dbConn =

Statement stmt = dbConn.createStatement();
ResultSet rs =
("select msg from messages where msgid='00001'");

if(rs != null) {
while( {
msg = rs.getString("msg");
catch (Exception e) {
out.println("OUPS " + e.getMessage() + "<BR>");
msgtext =
<i><%= msg %></i>

Instead of hard-coding the cache name into your java component, make the name available through a Property (of the Environment) of the Web application. This way your components are more flexible and you are using the "J2EE way" to make a connection. In this example, myconnection contains the cache name to be used.

javax.naming.InitialContext ctx = new javax.naming.InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource)
java.sql.Connection con = ds.getConnection();
java.sql.PreparedStatement stmt = con.prepareStatement(sql);
java.sql.ResultSet rs = stmt.executeQuery();

while ( {
//do something
Find all posts by this user
Quote this message in a reply
Post Reply 

Forum Jump:

Send your comments, Suggestions or Queries regarding this site at

Copyright © 2010 All Rights Reserved