001: /*
002: * JOnAS: Java(TM) Open Application Server
003: * Copyright (C) 1999 Bull S.A.
004: * Contact: jonas-team@objectweb.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * Initial developer(s): Eric HARDESTY
022: * --------------------------------------------------------------------------
023: * $Id: MetaDataImpl.java 4408 2004-03-19 14:31:54Z sauthieg $
024: * --------------------------------------------------------------------------
025: */
026: package org.objectweb.jonas.jdbc;
027:
028: import java.sql.DatabaseMetaData;
029: import java.sql.SQLException;
030:
031: import javax.resource.ResourceException;
032:
033: /**
034: * Description of the MetaDataImpl. This is the DatabaseMetadata for
035: * the current JDBC connection.
036: *
037: *@author Eric Hardesty
038: *@created 22 May 2003
039: */
040: public class MetaDataImpl implements
041: javax.resource.spi.ManagedConnectionMetaData {
042:
043: private ManagedConnectionImpl mcon;
044: private DatabaseMetaData dMetaData;
045:
046: public MetaDataImpl(ManagedConnectionImpl _mcon)
047: throws ResourceException {
048: dMetaData = null;
049: try {
050: mcon = _mcon;
051: dMetaData = mcon.connection.getMetaData();
052: } catch (SQLException se) {
053: throw new ResourceException(se.getMessage());
054: }
055: }
056:
057: /** Returns the JDBC Product name
058: *
059: * @return String Product name of the JDBC instance.
060: **/
061: public String getEISProductName() throws ResourceException {
062: try {
063: return (dMetaData.getDatabaseProductName());
064: } catch (SQLException se) {
065: throw new ResourceException(se.getMessage());
066: }
067: }
068:
069: /** Returns the JDBC Product version
070: *
071: * @return String Product version of the JDBC instance
072: **/
073: public String getEISProductVersion() throws ResourceException {
074: try {
075: return (dMetaData.getDatabaseProductVersion());
076: } catch (SQLException se) {
077: throw new ResourceException(se.getMessage());
078: }
079: }
080:
081: /** Returns maximum limit on number of active concurrent connections
082: * that this JDBC instance can support across client processes.
083: *
084: * @return int of maximum limit for number of active concurrent
085: * connections. 0 is an unlimited number of connections
086: **/
087: public int getMaxConnections() throws ResourceException {
088: try {
089: return (dMetaData.getMaxConnections());
090: } catch (SQLException se) {
091: throw new ResourceException(se.getMessage());
092: }
093: }
094:
095: /** Returns the name of the user associated with the JdbcRaManagedConnection
096: * instance. The name corresponds to the resource principal under
097: * whose security context, a connection to the DB has been
098: * established.
099: *
100: * @return String name of the user
101: **/
102: public String getUserName() throws ResourceException {
103: try {
104: return (dMetaData.getUserName());
105: } catch (SQLException se) {
106: throw new ResourceException(se.getMessage());
107: }
108: }
109: }
|