Perl Inline database calls (using DBI) throwing errors/failing in version 16.6

Options

Hello all - we are working on a 16.6 fresh install. None of our old *.ipls will connect to the database anymore - it looks like OpenText changed the perl modules/configuration needed in the perl?

OLD SERVER (7.4.1) had the ODBM.pm located here:
\dwapp04wcm\D_Drive\Interwoven\TeamSite\iw-perl\vendor\lib\DBD\ODBC.pm
\dwapp04wcm\D_Drive\Interwoven\TeamSite\iw-perl\vendor\lib\DBI\Const\GetInfo\ODBC.pm
\dwapp04wcm\D_Drive\Interwoven\TeamSite\iw-perl\vendor\lib\Win32\ODBC.pm

NEW SERVER
\dwapp02iwcm\Interwoven\TeamSite\iw-perl\vendor\lib\DBI\Const\GetInfo\ODBC.pm

This is the current connection we are trying in the perl:

use DBI;
my $config = XMLin('D:/Interwoven/OpenDeployNG/etc/database.xml', keyattr => ['name']);
$dsn = $config->{database}->{StageDB}->{user};
$db_password = $config->{database}->{StageDB}->{password};
$db = DBI->connect("dbi:ODBC:$dsn", "$db_user_name", "$db_password");

This is the error in the content_center.log

2019-06-27 13:48:02,353 [default task-8] ERROR com.interwoven.ui.tagui.LaunchNextGenTagUICommand () - LaunchNextGenTagUICommand caught InlineCalloutException while processing inlines for these files: /default/main/corporate_websites/WORKAREA/integration/daf/pdf/regulatory/annual_report/000001.pdf
com.interwoven.ui.datacapture.core.dct.InlineCallout$InlineCalloutException: install_driver(ODBC) failed: Can't locate DBD/ODBC.pm in @INC (you may need to install the DBD::ODBC module) (@INC contains: d:/Interwoven/TeamSite/iw-perl/site/lib d:/Interwoven/TeamSite/iw-perl/vendor/lib d:/Interwoven/TeamSite/iw-perl/lib) at (eval 15) line 3.
Perhaps the DBD::ODBC perl module hasn't been fully installed,
or perhaps the capitalisation of 'ODBC' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Mem, Proxy, Sponge.
at d:/Interwoven/TeamSite/local/bin/FED_inlineGetUniqueIdReq.ipl line 87.

at deployment.iw-cc.war//com.interwoven.ui.datacapture.core.dct.InlineCallout.handleClt(InlineCallout.java:286)
at deployment.iw-cc.war//com.interwoven.ui.datacapture.core.dct.InlineCallout.execute(InlineCallout.java:206)
at deployment.iw-cc.war//com.interwoven.ui.datacapture.external.InlineCalloutProcessor.executeInline(InlineCalloutProcessor.java:234)
at deployment.iw-cc.war//com.interwoven.ui.datacapture.external.InlineCalloutProcessor.evaluateInlineCallouts(InlineCalloutProcessor.java:159)
at deployment.iw-cc.war//com.interwoven.ui.datacapture.external.AbstractDCRPredicate.buildDCRDocument(AbstractDCRPredicate.java:76)
at deployment.iw-cc.war//com.interwoven.ui.tagui.LaunchNextGenTagUICommand.buildDCRDocument(LaunchNextGenTagUICommand.java:1070)
at deployment.iw-***

2019-06-27 13:48:02,353 [default task-8] ERROR com.interwoven.ui.base.impl.command.CommandHandler () - forward "WIZARD" not handled by descriptor iw.livesite.ccpro.tag

any help would be greatly appreciated - thanks in advance!!!

Comments

  • Well obviously 16.6 doesn't include DBD/ODBC.pm like previous versions did. Actually IIRC, only Windows included that, Linux never did.

    It may be that because of the licensing change to Java, that could not be included, or just that OT wanted to keep the installs closer between Windows and Linux.

    You can try to download it yourself and install. This link may help (just what I found on Google, have not tried it): https://code.activestate.com/ppm/DBD-ODBC/

  • Thanks Andy - that's what we found also. It's just weird they removed this functionality we have been using for 10+ years???

    can you install additional/3rd party perl modules in TeamSIte? if so do you know how? i cant find anything in the docs - i tried dropping the Oracle files in this folder and the inlines dont see them. thanks in advance!

    "\Servername\Interwoven\TeamSite\iw-perl\vendor\lib\DBD\Oracle.pm"
    "\Servername\Interwoven\TeamSite\iw-perl\vendor\lib\DBD\Oracle"

  • nipper
    edited July 1, 2019 #4
    Options

    I always install them in iw-perl/site/lib

    Vendor is for OT and will get overwritten.

    Did you create a folder called Oracle ? And then left it empty and added Oracle.pm at the same level ?

  • On my server (obviously Linux), we installed:

    /opt/Interwoven/TeamSite/iw-perl/site/lib/DBD/Oracle.pm

    I see we have the Oracle directory as well (I was not involved in setting this up) which we have:

    /opt/nterwoven/TeamSite/iw-perl/site/lib/DBD/Oracle/Troubleshooting
    /opt/Interwoven/TeamSite/iw-perl/site/lib/DBD/Oracle/Troubleshooting/Vms.pod
    /opt/Interwoven/TeamSite/iw-perl/site/lib/DBD/Oracle/Troubleshooting/Aix.pod
    /opt/Interwoven/TeamSite/iw-perl/site/lib/DBD/Oracle/Troubleshooting/Cygwin.pod
    /opt/Interwoven/TeamSite/iw-perl/site/lib/DBD/Oracle/Troubleshooting/Win64.pod
    /opt/Interwoven/TeamSite/iw-perl/site/lib/DBD/Oracle/Troubleshooting/Sun.pod
    /opt/Interwoven/TeamSite/iw-perl/site/lib/DBD/Oracle/Troubleshooting/Macos.pod
    /opt/Interwoven/TeamSite/iw-perl/site/lib/DBD/Oracle/Troubleshooting/Linux.pod
    /opt/Interwoven/TeamSite/iw-perl/site/lib/DBD/Oracle/Troubleshooting/Win32.pod
    /opt/Interwoven/TeamSite/iw-perl/site/lib/DBD/Oracle/Troubleshooting/Hpux.pod
    /opt/Interwoven/TeamSite/iw-perl/site/lib/DBD/Oracle/GetInfo.pm
    /opt/Interwoven/TeamSite/iw-perl/site/lib/DBD/Oracle/Object.pm
    /opt/Interwoven/TeamSite/iw-perl/site/lib/DBD/Oracle/Troubleshooting.pod

    I expect only GetInfo.pm and Object.pm are required.

  • Andy, thanks - we tried the above with no luck. a few questions

    1) what version of the oracle client are you using? we have tried both the 12.x and 18 versions of the 64bit oracle client
    D:\Oracle\product\64BIT\12.1.0\client_1
    D:\Oracle\product\64BIT\18.0.0\client_1

    2) did you manually move all the files in the above locations? i know you said you didn't do all the setup...we googled a few things and appears you actually need to run some command lines to install these modules?

    "D:\Interwoven\TeamSite\iw-perl\site\lib\DBD\Oracle.pm"
    "D:\Interwoven\TeamSite\iw-perl\site\lib\DBD\Oracle\Troubleshooting"
    "D:\Interwoven\TeamSite\iw-perl\site\lib\DBD\Oracle\GetInfo.pm"
    "D:\Interwoven\TeamSite\iw-perl\site\lib\DBD\Oracle\Object.pm"
    "D:\Interwoven\TeamSite\iw-perl\site\lib\DBD\Oracle\Troubleshooting.pod"

    i think we are hitting the module, as we get a different error now
    com.interwoven.ui.datacapture.core.dct.InlineCallout$InlineCalloutException: Can't locate loadable object for module DBD::Oracle in @INC (@INC contains: d:/Interwoven/TeamSite/iw-perl/site/lib d:/Interwoven/TeamSite/iw-perl/vendor/lib d:/Interwoven/TeamSite/iw-perl/lib) at d:/Interwoven/TeamSite/local/bin/FED_inlineGetUniqueIdReq.ipl line 15.

    vs when it cant find the module
    com.interwoven.ui.datacapture.core.dct.InlineCallout$InlineCalloutException: Can't locate DBD/Oracle2.pm in @INC (you may need to install the DBD::Oracle2 module)

    When we googled the error it mentioned permissions, so we gave full permissions on the new module and that didnt help.

    thanks so much for the help!

  • We use /opt/oracle/12.1.0.2/client/jdbc/lib/ojdbc7.jar

    I will ask around to see who installed the perl modules, I know the installation is funky.

    Where did Oracle2.pm come from ?

    The loadable object that is missing should be a dll, in Unix land thats a shared library. And you need to restart (or rehash the loadable library hash) to pick it up

  • Andy, were you able to find anything? we are really struggling with this - we have a case open w/ OpenText, and they are stating this is now considered a customization and seem unsure what to do. recently we tried this

    download DBD::ODBC module from https://metacpan.org/pod/DBD::ODBC

    per their documentation, 2 install options

    1) cpanm DBD::ODBC > cpanm doesnt exist in TeamSite install
    2) perl -MCPAN -e shell

    when we run this as administrator, we get the following:

    D:\Interwoven\TeamSite\iw-perl>perl -MCPAN -e shell
    Sorry, we have to rerun the configuration dialog for CPAN.pm due to
    some missing parameters. Configuration will be written to
    <<C:\Users\5-wcmdev.cpan/CPAN/MyConfig.pm>>

    CPAN.pm requires configuration, but most of it can be done automatically.
    If you answer 'no' below, you will enter an interactive dialog for each
    configuration option instead.

    Would you like to configure as much as possible automatically? [yes] yes

    Warning: You do not have write permission for Perl library directories.

    To install modules, you need to configure a local Perl library directory or
    escalate your privileges. CPAN can help you by bootstrapping the local::lib
    module or by configuring itself to use 'sudo' (if available). You may also
    resolve this problem manually if you need to customize your setup.

    What approach do you want? (Choose 'local::lib', 'sudo' or 'manual')
    [local::lib] local::lib

    ALERT: 'make' is an essential tool for building perl Modules.
    Please make sure you have 'make' (or some equivalent) working.

    Windows users may want to follow this procedure when back in the CPAN shell:

    look YVES/scripts/alien_nmake.pl
    perl alien_nmake.pl
    

    This will install nmake on your system which can be used as a 'make'
    substitute. You can then revisit this dialog with

    o conf init make
    

    Autoconfiguration complete.

    Attempting to bootstrap local::lib...

    Writing C:\Users\5-wcmdev.cpan/CPAN/MyConfig.pm for bootstrap...
    commit: wrote 'C:\Users\5-wcmdev.cpan/CPAN/MyConfig.pm'
    Fetching with LWP:
    http://www.cpan.org/authors/01mailrc.txt.gz
    LWP failed with code[503] message[Service Unavailable]
    Warning: no success downloading 'C:\Users\5-wcmdev.cpan\sources\authors\01mailrc.txt.gz.tmp10416'. Giving up on it.
    Warning: no success downloading 'C:\Users\5-wcmdev.cpan\sources\authors\01mailrc.txt.gz.tmp10416'. Giving up on it.

    As a last resort we now switch to the external ftp command 'C:\WINDOWS\system32\ftp.EXE'
    to get 'C:\Users\5-wcmdev.cpan\sources\authors\01mailrc.txt.gz.tmp10416'.

    Doing so often leads to problems that are hard to diagnose.

    If you're the victim of such problems, please consider unsetting the
    ftp config variable with

    o conf ftp ""
    o conf commit
    

    Fetching with LWP:
    http://www.cpan.org/authors/01mailrc.txt.gz
    LWP failed with code[503] message[Service Unavailable]
    Warning: no success downloading 'C:\Users\5-wcmdev.cpan\sources\authors\01mailrc.txt.gz.tmp10416'. Giving up on it.
    Warning: no success downloading 'C:\Users\5-wcmdev.cpan\sources\authors\01mailrc.txt.gz.tmp10416'. Giving up on it.

    As a last resort we now switch to the external ftp command 'C:\WINDOWS\system32\ftp.EXE'
    to get 'C:\Users\5-wcmdev.cpan\sources\authors\01mailrc.txt.gz.tmp10416'.

    Doing so often leads to problems that are hard to diagnose.

    If you're the victim of such problems, please consider unsetting the
    ftp config variable with

    o conf ftp ""
    o conf commit
    

    Please check, if the URLs I found in your configuration file
    (http://www.cpan.org/) are valid. The urllist can be edited. E.g. with 'o
    conf urllist push ftp://myurl/'

    Could not fetch authors/01mailrc.txt.gz

  • I wish I could help but I have not done perl specific administration on Windows for several years. I know DBD was a PITA on Linux, seems worse on windows. If I can set up an env I will see what I can do. See if you can hire one of the OT consultants for a week and have them implement it.

    It looks like there are no other options for Oracle other than DBD

    OT also calling this a customization is wrong IMHO, as it was part of the product until recently. They can drop support for things, but some notice is also important.

  • I had a customer use this to install DBD before (non TS related):

    https://g14n.info/2013/07/how-to-install-dbdoracle/

  • Andy, thanks - we had to fight with support, but we finally got a lib-odbc.zip file from them with the compiled libraries that worked.

    these were the instructions - i am assuming i shouldnt post the zip file here, but if anyone needs it let me know (Oracle/Windows)

    • Extract the contents of the zip file on the TS server
    • Copy the DBD folder to Interwoven\TeamSite\iw-perl\vendor\lib\DBD.
    • Copy the auto folder to \Interwoven\TeamSite\iw-perl\vendor\lib\auto.
    • These are compiled modules.
TeamSite Developer Resources

  • Docker Automation

  • LiveSite Content Services (LSCS) REST API

  • Single Page Application (SPA) Modules

  • TeamSite Add-ons

If you are interested in gaining full access to the content, you can register for a My Support account here.
image
OpenText CE Products
TeamSite
APIs