ODBC: libODBC6.so not found

Clovertech Forums Read Only Archives Cloverleaf Cloverleaf ODBC: libODBC6.so not found

  • Creator
    Topic
  • #48930
    Jim Kosloskey
    Participant

      All,

      In the early stages of implementing ODBC Drivers.

      I get the following Tcl error when doing the ‘package require odbc’ from within the engine (it works fine within hcitcl):

      couldn’t load file :/quovadx/qdx5.2/integrator/tcl/lib/odbc../libODBC6.so”: No such file or directory

      However the libODBC6.so file DOES live in /quovadx/qdx5.2/integrator/lib directory NOT in the /quovadx/qdx5.2/integrator/tcl/lib/odbc directory.

      Could there be something incorrect in some environment setting or does the Host Server need to be restarted (seeing as how this malfunctions in the engine but not hcitcl), or ????

      Thanks,

      Jim Kosloskey

      email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

    Viewing 15 reply threads
    • Author
      Replies
      • #60140
        Glenn Friedenreich
        Participant

          Hi Jim – Its been a while since we set up ODBC, but you might want to check your odbc.ini file for the InstallDir entry.  Ours looks like this:

          [ODBC]

          IANAAppCodePage=4

          InstallDir=/hci/qdx5.3/integrator/lib/Connect4.2

          Trace=0

          TraceDll=/hci/qdx5.3/integrator/lib/Connect4.2/lib/odbctrac.so

          TraceFile=odbctrace.out

          UseCursorLib=0

          (Our odbc.ni resides here:

          /hci/qdx5.3/integrator/lib/Connect4.2)

          I don’t think the host server needs to be restarted.  In fact, we run our production site with the host server always turned off.

          Hope that helps.

          – Glenn

        • #60141
          Jim Kosloskey
          Participant

            Glenn,

            How are you doing?

            Our odbc.ini file is intact, located properly, and functions. I do not think that is the problem.

            My guess is the module being looked for is not pre loaded (may be due to a environment variable not being set) and the odbc package is trying to load it but has the incorrect location.

            Then again I could be way out in left field.

            Thanks for the information regarding the Host Server. It is low on my candidate list.

            Jim Kosloskey

            email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

          • #60142
            Mike Grieger
            Participant

              FWIW,  our ODBC .so files are located at the /tcl/lib directory.  I’m inclined to believe that is where they belong…  notice in the Rev documentation, in the step of backing up files that change per Rev, the location listed for these .so file backups is also /tcl/lib

            • #60143
              Jim Kosloskey
              Participant

                Mike,

                Thanks.

                So the file lives in the correct place but the odbc package is trying to load them from the wrong location – it appears.

                Again I suspect Cloverleaf(R) engine expects this to be preloaded and in my case it is not so the odbc package is trying to locate the file and doing it incorrectly. At least that is my theory at this time.

                If my theory is correct, I need to find out how that file is supposed to be loaded correctly.

                Jim Kosloskey

                email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

              • #60144
                Ed Mastascusa
                Participant

                  Hello Jim

                  Re your incorrect *.so file location theory there may be some auto_path issue, I think odbc looks for its “so” files in the “LIBPATH” topic defined in the “odbcInfo” file(s)

                  On our box we have one odbcInfo file in the /hci/qdx5.3/integrator/lib/

                  directory (contents shown below)

                  $ cat /hci/qdx5.3/integrator/lib/odbcInfo

                  default=Connect4.2hci@ba(qted):/hci/qdx5.3/integrator/lib/Connect4.2

                  A second odbcInfo file in the “default” dir has a LIBPATH setting that references where all the so files all reside

                  $ cat /hci/qdx5.3/integrator/lib/Connect4.2/odbcInfo

                  LIBPATH=/hci/qdx5.3/integrator/lib/Connect4.2/lib

                  ODBCINI=/hci/qdx5.3/integrator/lib/Connect4.2/odbc.ini

                  I know we had some problems finding the “so” files when we changed versions from Connect 3.? to 4.2 but it was because the the odbc.ini  “driver” names changed slightly with the new versions – the last 2 digits in the Driver settings seemed to be a version number.  However, that problem happens when SQLCOnnect was called.  

                  hope this helps

                • #60145
                  Mike Grieger
                  Participant

                    Jim –

                      I thought that your original post said that your libODBC6.so file was actually at /quovadx/qdx5.2/integrator/lib ?     That is what I thought was incorrect, as they should be at  /quovadx/qdx5.2/integrator/tcl/lib  (at least they are here, and that is where the error says its looking)

                    If I mis-understood, please disregard.

                  • #60146
                    Jim Kosloskey
                    Participant

                      Ed,

                      Thanks – I will take a look. That certainly seems like a good candidate.

                      Jim Kosloskey

                      email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

                    • #60147
                      Jim Kosloskey
                      Participant

                        Mike,

                        OK

                        $HCIROOT/tcl/lib is where the libODBC6.so file lives,

                        $HCIROOT/tcl/lib/odbc is where it is being looked for.

                        So maybe it is not in the correct location.

                        The package that is trying to reference it is ifneeded which is being invoked by the package odbc. My thinking is that the file libODBC6.so should be resident when the engine starts and the the ifneeded package is used only when the odbc package does not see the code resident and decides to go get it. Then ifneeded has an incorrect location.

                        However, based on what you are indicating, the $HCIROOT/tcl/lib/odbc directory is the correct location.

                        Curiouser and curiouser…

                        Thanks,

                        Jim Kosloskey

                        email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

                      • #60148
                        garry r fisher
                        Participant

                          Jim,

                          Sorry to be a bit vague but we had the same problem and I think (the vague bit) that ODBC6 is part of a later version of the Cloverleaf ODBC library – So I think you need to upgrade.

                          Not sure why it happens though.

                          Regards

                          Garry

                        • #60149
                          Mike Grieger
                          Participant

                            My mistake, Jim – I had mis-understood the path info you had in your original post.  I believe that your files are where they need to be, in $HCIROOT/tcl/lib    It’s been about 4 years since I installed the odbc, so I’m just working on old recollections.  What I had meant by the error pointing to the files not being at $HCIROOT/tcl/lib location…     I thought I remembered something like that as well that was kind of misleading as the error returns /quovadx/qdx5.2/integrator/tcl/lib/odbc../libODBC6.so – I thought that there was a directory back reference (..) so the location really IS looking in /tcl/lib, not tcl/lib/odbc.  Again, it has been awhile.

                            Sorry for the confusion.  I think your files are where they should be.  I guess the curious thing is that you can invoke the ‘package require odbc’ from hcitcl.  Back when I was having problems getting going, I was getting an error doing that…

                          • #60150
                            Mike Grieger
                            Participant

                              Question – do you have your odbc trace turned on?  Maybe that would yield some help.  The biggest problem I recall from 4 years back when getting going was that for some reason, our odbc installation failed to install one or two .so files – I *think* this was revealed through the trace log what it was really looking for.  I then dug through the installation packages on the install CD to find them an we got up and running.  The .so files I have in the /tcl/lib are libODBC1, 2, 3, 4, and 6.

                            • #60151
                              Jim Kosloskey
                              Participant

                                All,

                                Thanks for all the assistance.

                                We got that working and all we needed to do was to cycle the Host Server for Cloverleaf(R).

                                This apparently was not done following the install. That is why it worked with hcitcl and not in the engine.

                                Something to remember.

                                Jim Kosloskey

                                email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

                              • #60152
                                Peter Heggie
                                Participant

                                  Similar problem with Cloverleaf 6.0. Just installed Data Integrator and have the license keys.

                                  I’m running a tcl that has ODBC calls that is executed within a Xlate Copy action. Getting this error message:

                                  Quote:

                                  couldn’t load file “/hci/cis6.0/integrator/tcl/lib/odbc/../libODBC11.so”: 0509-022 Cannot load module /hci/cis6.0/integrator/tcl/lib/odbc/../libODBC11.so.

                                  0509-150   Dependent module libodbc.a(odbc.so) could not be loaded.

                                  0509-022 Cannot load module libodbc.a(odbc.so).

                                  0509-026 System error: A file or directory in the path name does not exist.

                                  0509-022 Cannot load module /hci/cis6.0/integrator/tcl/lib/odbc/../libODBC11.so.

                                  0509-150   Dependent module /hci/cis6.0/integrator/tcl/lib/odbc/../libODBC11.so could not be loaded.

                                  while executing

                                  “load /hci/cis6.0/integrator/tcl/lib/odbc/../libODBC11.so”

                                  (“package ifneeded odbc 11.0” script)

                                  invoked from within

                                  “package require odbc”

                                  (procedure “VirtualBedGetNextAvail” line 28)

                                  Our odbcInfo has the correct LIBPATH pointing to the library where the libodbc.a is located; also in that directory is a link:

                                  lrwxrwxrwx    1 hci      staff             7 Apr 30 10:36 libodbc.so -> odbc.so

                                  Hopefully this is a simple configuration issue. I can run hcitcl from the command line and everything works fine; its just the execution from a translate of a tcl that calls odbc.

                                  The problem seems to occur with the ‘package require odbc’ statement itself, perhaps in the dynamic loading of the libraries; I’m not familiar with tcl libraries, dynamic loading and the environment (libpath) existing in the Translate / thread / process. I did restart the process several times.

                                  Any hints for installation or configuration changes? Does anything else have to be restarted?

                                  This server has both 5.8 and 6.0 software installed.

                                  Peter Heggie

                                • #60153
                                  Jim Kosloskey
                                  Participant

                                    Peter,

                                    Did you re-cycle the Cloverleaf Host Server?

                                    email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

                                  • #60154
                                    Peter Heggie
                                    Participant

                                      Yes I did but I will do it again. Because of HACMP and having our prod environment still on 5.8, the /etc/environment file was pointing to 5.8; I can’t update that, so I’m temporarily trying to override the .profile for hci, to set the CL_INSTALL_PATH to 6.0 and recycle the host server and process.

                                      Peter Heggie

                                    • #60155
                                      Peter Heggie
                                      Participant

                                        That was it. I updated .profile for the user hci to explicitly set the CL_INSTALL_PATH instead of using what is in /etc/environment, and it worked. At least, it loaded the libraries correctly! Now I’m just working on programming issues.

                                        thanks much!

                                        Peter Heggie

                                    Viewing 15 reply threads
                                    • The forum ‘Cloverleaf’ is closed to new topics and replies.