ADSM-L

Re: HELP: In TSM (Tivoli storage manager) 5.1 querying its databse thorugh java code

2002-10-30 21:07:06
Subject: Re: HELP: In TSM (Tivoli storage manager) 5.1 querying its databse thorugh java code
From: Andrew Raibeck <storman AT US.IBM DOT COM>
To: ADSM-L AT VM.MARIST DOT EDU
Date: Wed, 30 Oct 2002 14:44:42 -0700
I am quickly running out of ideas. But here are a few other things to try:

1) Can you create a new user or system DSN?

2) Start an Admin console session as I described earlier so you can watch
the ODBC driver communicate with the TSM server. When you try to run your
Java program, do you see anything appear on the console?

3) Run the ODBC Data Source Administrator and create a new file DSN. When
you create the DSN, you will have to fill in the "Connect to TSM" dialog.
After you fill in the information (including admin ID and password), click
OK and watch the Admin console. Do you see the admin session connecting to
the TSM server?

4) Do you have MS Access? If so, can you open a table via the TSM ODBC
driver?

5) Also, check the directory where you installed the TSM ODBC driver
(default is C:\Program Files\Tivoli\TSM\odbc). You should find at least
these files:

dscameng.txt
dsmntapi.dll
odbcadsm.dll
tsmutil1.dll

They should all have dates of 12 September 2002.

6) Review the ODBC driver configuration details in the ODBC driver README
file. Does everything look correct?

7) If none of that yields an immediate answer, then perform the activities
in the "Troubleshooting/Diagnostics" section of the README file, as I
advised yesterday. email me the details *privately* (don't post them on
ADSM-L!) and I will see if I can spot the trouble.

This is the most I can offer in this informal support forum. If progress
still can not be made, then I would appreciate it if you would open a
problem with IBM support so that we can troubleshoot on a more formal
basis.

Regards,

Andy

Andy Raibeck
IBM Software Group
Tivoli Storage Manager Client Development
Internal Notes e-mail: Andrew Raibeck/Tucson/IBM@IBMUS
Internet e-mail: storman AT us.eyebm DOT com (change eye to i to reply)

The only dumb question is the one that goes unasked.
The command line is your friend.
"Good enough" is the enemy of excellence.




murali ramaswamy <muralirama29 AT HOTMAIL DOT COM>
Sent by: "ADSM: Dist Stor Manager" <ADSM-L AT VM.MARIST DOT EDU>
10/30/2002 13:57
Please respond to "ADSM: Dist Stor Manager"


        To:     ADSM-L AT VM.MARIST DOT EDU
        cc:
        Subject:        Re: HELP: In TSM (Tivoli storage manager) 5.1 querying 
its databse thorugh
java code



Hi,
After downloading and restarting the computer I checked the driver to be
5.01.05 as you mentioned.  But still the Connection is null as given below
in the output.  Now I dont get the earlier message of connected to server.
It just stops after getting Connection which is null.  So I get null
pointer
exception in next line.  ANy suggestions?
Thanks
-murali
C:\my-java>java TSM
***1
***2
***21
***22
***23
***3 dbc:null
java.lang.NullPointerException:
        at TSM.main(TSM.java:25)

C:\my-java>






>From: Andrew Raibeck <storman AT US.IBM DOT COM>
>Reply-To: "ADSM: Dist Stor Manager" <ADSM-L AT VM.MARIST DOT EDU>
>To: ADSM-L AT VM.MARIST DOT EDU
>Subject: Re: HELP: In TSM (Tivoli storage manager) 5.1 querying its
databse
>         thorugh java code
>Date: Wed, 30 Oct 2002 09:37:49 -0700
>
>The ODBC driver is available for Windows only (see the README file that
>accompanies the ODBC driver for details on what Windows versions are
>supported). There is no charge to download the ODBC driver.
>
>You can find most TSM code on FTP site ftp.software.ibm.com in directory
>storage/tivoli-storage-management.
>
>>From there, you will see "maintenance" and "patches" directories.
>"maintenance" is for .0 releases (i.e. 5.1.5.0) and "patches" is for
>patches (i.e. 5.1.5.2).
>
>The ODBC driver is a component of the backup-archive client. Since it is
>5.1.5.0, you want to traverse into the "maintenance" directory. To find
>it, go to:
>
>    maintenance/client/v5r1/Windows/WinNT/v515
>
>Thus the entire directory is:
>
>
>storage/tivoli-storage-management/maintenance/client/v5r1/Windows/WinNT/v515
>
>The files you want all begin with IP22546_ODBC. The ODBC driver package
is
>called IP22546_ODBC.exe.
>
>After you install the driver, run the ODBC Data Source Administrator,
>click on the "Drivers" tab, and verify that 5.1.5.0 is installed.
>
>Regards,
>
>Andy
>
>Andy Raibeck
>IBM Software Group
>Tivoli Storage Manager Client Development
>Internal Notes e-mail: Andrew Raibeck/Tucson/IBM@IBMUS
>Internet e-mail: storman AT us.eyebm DOT com (change eye to i to reply)
>
>The only dumb question is the one that goes unasked.
>The command line is your friend.
>"Good enough" is the enemy of excellence.
>
>
>
>
>murali ramaswamy <muralirama29 AT HOTMAIL DOT COM>
>Sent by: "ADSM: Dist Stor Manager" <ADSM-L AT VM.MARIST DOT EDU>
>10/30/2002 09:14
>Please respond to "ADSM: Dist Stor Manager"
>
>
>         To:     ADSM-L AT VM.MARIST DOT EDU
>         cc:
>         Subject:        Re: HELP: In TSM (Tivoli storage manager) 5.1
>querying its databse thorugh
>java code
>
>
>
>Hi,
>Actually I searched all IBM and Tivoli sites with key words ODBC driver
>and Storage and the download pages do not have download for ODBC driver
>for
>TSM 5.1 or TSM.  Do you know the URL for that donwload of ODBC driver
>version 5.1.5.0 for TSM for Windows 2000 and do you know if it is free or
>if
>it requires some fees?  One more question is is the ODBC driver is only
>for
>Windows 2000 (or) is TSM has ODBC drivers for Solaris and  AIX also?
>Thanks
>-murali
>
>
>
>
>
> >From: Andrew Raibeck <storman AT US.IBM DOT COM>
> >Reply-To: "ADSM: Dist Stor Manager" <ADSM-L AT VM.MARIST DOT EDU>
> >To: ADSM-L AT VM.MARIST DOT EDU
> >Subject: Re: HELP: In TSM (Tivoli storage manager) 5.1 querying its
>databse
> >         thorugh java code
> >Date: Tue, 29 Oct 2002 17:42:12 -0700
> >
> >OK, a couple of things:
> >
> >1) I traced the ODBC driver while getting the connection, and you are
> >right. It looks to me like the JDBC-ODBC bridge is doing more than just
> >connecting with the server; it is also obtaining information about the
>TSM
> >tables, and among other things, does call SQLColAttribute(). The ODBC
> >driver is connecting successfully, but the attempt to get information
> >about the TSM database is failing. Since these two functions appear to
be
> >wrapped in the getConnection() code, we are both right! (Sorry, I am
not
> >familiar with the details of how the JDBC-ODBC bridge works.)
> >
> >2) Looking more closely at my 10 May 2002 post (I provided the link in
my
> >original response on this thread), the customer to whom I responded was
> >seeing similar problems as you, and I recommended 4.2.2.0 or 5.1.0.1 at
> >that time. I'm fairly certain that 5.1.0.1 contained significant
> >enhancements (okay, fixes) that will resolve the trouble you are
seeing.
> >Since 5.1.5.0 contains even more fixes, it is the version I recommend.
>Try
> >that, and let me know how it goes.
> >
> >Regards,
> >
> >Andy
> >
> >Andy Raibeck
> >IBM Software Group
> >Tivoli Storage Manager Client Development
> >Internal Notes e-mail: Andrew Raibeck/Tucson/IBM@IBMUS
> >Internet e-mail: storman AT us.eyebm DOT com (change eye to i to reply)
> >
> >The only dumb question is the one that goes unasked.
> >The command line is your friend.
> >"Good enough" is the enemy of excellence.
> >
> >
> >
> >
> >murali ramaswamy <muralirama29 AT HOTMAIL DOT COM>
> >Sent by: "ADSM: Dist Stor Manager" <ADSM-L AT VM.MARIST DOT EDU>
> >10/29/2002 17:12
> >Please respond to "ADSM: Dist Stor Manager"
> >
> >
> >         To:     ADSM-L AT VM.MARIST DOT EDU
> >         cc:
> >         Subject:        Re: HELP: In TSM (Tivoli storage manager) 5.1
> >querying its databse thorugh
> >java code
> >
> >
> >
> >Hi,
> >I checked that ODBC version and it is 5.01.00.00.
> >If you still have my first email with code, there
> >I am using your code as it is where the line was
> >return DriverManager.getConnection("jdbc:odbc:tsm", "admin",
> > >"admin");  I gave System.out statements in all
> >steps and found that beyond this line it does not proceed.
> >Here I changed the code to get the actual return value for
> >the Connection by putting it inside try block.  There is
> >no exception in this step but the Connection object is null.
> >Though why the  Session established with server TSM_SERVER1
> >message seen is not clear.  Somewhere during Connection
> >it fails.  Thats what I found by the System.out statements.
> >I will do your other suggestions.  Thanks for such detailed
> >study of the problem.
> >-murali
> >
> >
> >
> >
> >
> >
> > >From: Andrew Raibeck <storman AT US.IBM DOT COM>
> > >Reply-To: "ADSM: Dist Stor Manager" <ADSM-L AT VM.MARIST DOT EDU>
> > >To: ADSM-L AT VM.MARIST DOT EDU
> > >Subject: Re: HELP: In TSM (Tivoli storage manager) 5.1 querying its
> >databse
> > >         thorugh java code
> > >Date: Tue, 29 Oct 2002 16:41:12 -0700
> > >
> > > > My ODBC version is 3.51
> > >
> > >3.51 is the version of Microsoft ODBC support you have installed on
>your
> > >system. What I am asking about is the version of TSM ODBC driver you
>have
> > >installed. If you run the ODBC Data Source Administrator
>(odbcad32.exe),
> > >click on the "Drivers" tab, locate the "TSM ODBC Driver" (probably
near
> > >the bottom of the list) and look at the "Version" column, you will
see
> >the
> > >version number of the TSM ODBC driver.
> > >
> > >You are definitely connecting with the TSM server, so the connection
> > >portion of the code is fine. Note the output you showed me earlier:
> > >
> > > >Session established with server TSM_SERVER1: Windows
> > > >   Server Version 5, Release 1, Level 0.0
> > > >   Server date/time: 10/29/2002 15:25:28  Last access: 10/29/2002
> > >15:15:01
> > > >
> > > >Session established with server TSM_SERVER1: Windows
> > > >   Server Version 5, Release 1, Level 0.0
> > > >   Server date/time: 10/29/2002 15:25:29  Last access: 10/29/2002
> > >15:25:28
> > > >
> > > >TSM: There is no information about this table.
> > >
> > >The "Session established with server" messages tell me that you are
> > >clearly connecting with the TSM server. You can watch this happen by
> > >running the Admin command line interfact in console mode. Start the
>Admin
> > >CLI like this:
> > >
> > >    dsmadmc -console
> > >
> > >Enter your admin ID and password. Then when activity happens on your
>TSM
> > >server, you will see it in the Admin console. Run your Java code and
> >watch
> > >the ODBC driver "talk" to the TSM server.
> > >
> > >The message "TSM: There is no information about this table" is issued
>by
> > >the TSM ODBC driver from either SQLDescribeCol() or
SQLColAttribute().
>My
> > >guess is that it is coming from SQLColAttribute(), which was broken
in
> > >earlier versions of the TSM ODBC driver. Which is one reason I
>recommend
> > >that you install 5.1.5, just to eliminate the driver from the
problem.
> > >
> > >User DSN information is stored in the registry, in
> > >HKEY_CURRENT_USER\Software\ODBC\ODBC.INI. System DSN info looks like
>user
> > >DSN info, except system DSNs are stored in
> > >HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI. The README file that
> > >accompanies the ODBC driver has a section, "ODBC Driver Configuration
> > >Details", that discusses the user DSN registry settings. But since
you
> >are
> > >connecting successfully to the TSM server, your DSN is not the
problem.
> >As
> > >I said before, I am able to run your exact same code (except for DSN
> >name,
> > >Admin ID, and password) and get good results.
> > >
> > >If the problem persists, even with the 5.1.5 TSM ODBC driver, then
>review
> > >the TSM ODBC driver README file and follow the advice given in the
> > >"Troubleshooting/Diagnostics" section subsection "Application
Problems"
> >to
> > >obtain the appropriate trace data. Then open a problem with IBM
>support,
> > >and we can work through it that way.
> > >
> > >Regards,
> > >
> > >Andy
> > >
> > >Andy Raibeck
> > >IBM Software Group
> > >Tivoli Storage Manager Client Development
> > >Internal Notes e-mail: Andrew Raibeck/Tucson/IBM@IBMUS
> > >Internet e-mail: storman AT us.eyebm DOT com (change eye to i to reply)
> > >
> > >The only dumb question is the one that goes unasked.
> > >The command line is your friend.
> > >"Good enough" is the enemy of excellence.
> > >
> > >
> > >
> > >
> > >murali ramaswamy <muralirama29 AT HOTMAIL DOT COM>
> > >Sent by: "ADSM: Dist Stor Manager" <ADSM-L AT VM.MARIST DOT EDU>
> > >10/29/2002 15:20
> > >Please respond to "ADSM: Dist Stor Manager"
> > >
> > >
> > >         To:     ADSM-L AT VM.MARIST DOT EDU
> > >         cc:
> > >         Subject:        Re: HELP: In TSM (Tivoli storage manager)
5.1
> > >querying its databse thorugh
> > >java code
> > >
> > >
> > >
> > >Hi,
> > >I found that that the TSM: There is no information about this table.
> > >comes when creating Connection object.  Connection does not happen.
> > >In which folder the  DSN file to be created?  Is it supposed to be in
a
> > >specific folder where the database tables of TSM (I dont know even
that
> > >location with respect to install location of TSM server) is?
> > >Thanks
> > >-murali
> > >
> > >
> > >
> > >
> > >
> > >
> > > >From: Andrew Raibeck <storman AT US.IBM DOT COM>
> > > >Reply-To: "ADSM: Dist Stor Manager" <ADSM-L AT VM.MARIST DOT EDU>
> > > >To: ADSM-L AT VM.MARIST DOT EDU
> > > >Subject: Re: HELP: In TSM (Tivoli storage manager) 5.1 querying its
> > >databse
> > > >         thorugh java code
> > > >Date: Tue, 29 Oct 2002 14:52:10 -0700
> > > >
> > > >I copied and pasted your code, as is, into the two .java files.
Then
>I
> > > >modified the DSN, Admin ID, and password to match my environment,
>then
> > > >compiled the files. The output looked just fine to me, so your code
> >looks
> > > >good.
> > > >
> > > >Which version of the ODBC driver are you using? Please be sure you
>are
> > > >using a current version. 5.1.5.0 is preferable.
> > > >
> > > >Regards,
> > > >
> > > >Andy
> > > >
> > > >Andy Raibeck
> > > >IBM Software Group
> > > >Tivoli Storage Manager Client Development
> > > >Internal Notes e-mail: Andrew Raibeck/Tucson/IBM@IBMUS
> > > >Internet e-mail: storman AT us.eyebm DOT com (change eye to i to reply)
> > > >
> > > >The only dumb question is the one that goes unasked.
> > > >The command line is your friend.
> > > >"Good enough" is the enemy of excellence.
> > > >
> > > >
> > > >
> > > >
> > > >murali ramaswamy <muralirama29 AT HOTMAIL DOT COM>
> > > >Sent by: "ADSM: Dist Stor Manager" <ADSM-L AT VM.MARIST DOT EDU>
> > > >10/29/2002 14:30
> > > >Please respond to "ADSM: Dist Stor Manager"
> > > >
> > > >
> > > >         To:     ADSM-L AT VM.MARIST DOT EDU
> > > >         cc:
> > > >         Subject:        Re: HELP: In TSM (Tivoli storage manager)
>5.1
> > > >querying its databse thorugh
> > > >java code
> > > >
> > > >
> > > >
> > > >Hi,
> > > >   After adding in system and user dsn when running I get following
> > >message
> > > >on screen:
> > > >
> > > >C:\my-java>java TSM
> > > >Session established with server TSM_SERVER1: Windows
> > > >   Server Version 5, Release 1, Level 0.0
> > > >   Server date/time: 10/29/2002 15:25:28  Last access: 10/29/2002
> > >15:15:01
> > > >
> > > >Session established with server TSM_SERVER1: Windows
> > > >   Server Version 5, Release 1, Level 0.0
> > > >   Server date/time: 10/29/2002 15:25:29  Last access: 10/29/2002
> > >15:25:28
> > > >
> > > >TSM: There is no information about this table.
> > > >
> > > >Any thoughts please?
> > > >Following are the contents of 2 files:
> > > >
> > > >TSMConnect:
> > > >
> > > >import java.sql.*;
> > > >public class TSMConnect
> > > >{
> > > >    public Connection connect() throws SQLException
> > > >   {
> > > >      try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }
> > > >      catch (ClassNotFoundException e)
> > > >     {
> > > >       throw new SQLException("Unable to load JdbcOdbcDriver
class");
> > > >     }
> > > >     // arguments are "jdbc:odbc:yourdsn", "youradmin", "yourpw"
> > > >     return DriverManager.getConnection("jdbc:odbc:tsm", "admin",
> > >"admin");
> > > >   }
> > > >   public void close(Connection dbc, Statement stmt)
> > > >{
> > > >    try
> > > >   {
> > > >     if (stmt != null) stmt.close(); if (dbc != null) dbc.close();
> > > >   }
> > > >   catch (SQLException sqlex) {}
> > > >}
> > > >public static void main(String args[])
> > > >{
> > > >   TSMConnect TC = new TSMConnect(); Connection dbc = null;
Statement
> > >stmt
> > > >=
> > > >null;
> > > >   try
> > > >{
> > > >    dbc = TC.connect();
> > > >    System.out.println("Connection opened.");
> > > >    stmt = dbc.createStatement();
> > > >    System.out.println("Created a statement.");
> > > >}
> > > >catch (SQLException sqlex)
> > > >{
> > > >    System.out.println(sqlex.getMessage());
> > > >}
> > > >finally
> > > >{
> > > >    TC.close(dbc, stmt); System.out.println("Connection closed.");
> > > >}
> > > >}
> > > >}
> > > >
> > > >
> > > >TSM:
> > > >
> > > >import java.sql.*;
> > > >public class TSM extends TSMConnect
> > > >{
> > > >   public static void main(String args[])
> > > >{
> > > >    if (args.length != 0)
> > > >   {
> > > >     System.out.println("Usage: java TSM");
> > > >     System.exit(1);
> > > >   }
> > > >   String query = "SELECT * FROM backups";
> > > >   TSM tsmObj = new TSM();
> > > >   Connection dbc = null;
> > > >   Statement stmt = null;
> > > >   ResultSet resultSet = null;
> > > >   try
> > > >{
> > > >     dbc = tsmObj.connect();
> > > >     stmt = dbc.createStatement();
> > > >     resultSet = stmt.executeQuery(query);
> > > >     tsmObj.presentResultSet(resultSet);
> > > >}
> > > >catch (SQLException sqlex)
> > > >{
> > > >     System.out.println(sqlex.getMessage());
> > > >   }
> > > >finally
> > > >{
> > > >   tsmObj.close(dbc, stmt);
> > > >}
> > > >}
> > > >public void presentResultSet(ResultSet rs) throws SQLException
> > > >{
> > > >   if (!rs.next()) System.out.println("No records to display");
> > > >   else
> > > >   {
> > > >     do
> > > >     {
> > > >       System.out.println(rs.getString("NODE_NAME") + ": " +
> > > >rs.getString("FILESPACE_NAME"));
> > > >      } while (rs.next());
> > > >   }
> > > >}
> > > >}
> > > >
> > > >
> > > >
> > > >Thanks
> > > >- murali
> > >
> > >
> > >_________________________________________________________________
> > >Unlimited Internet access for only $21.95/month.  Try MSN!
> > >http://resourcecenter.msn.com/access/plans/2monthsfree.asp
> >
> >
> >_________________________________________________________________
> >Get faster connections -- switch to MSN Internet Access!
> >http://resourcecenter.msn.com/access/plans/default.asp
>
>
>_________________________________________________________________
>Get faster connections -- switch to MSN Internet Access!
>http://resourcecenter.msn.com/access/plans/default.asp


_________________________________________________________________
Broadband? Dial-up? Get reliable MSN Internet Access.
http://resourcecenter.msn.com/access/plans/default.asp