Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Web CMS (TeamSite)
DNR Not RUnning
brendang
Hi,
I'm running OpenDeployNG Version 5.6.0.1.0 Build 28338 Interwoven 20031124 and having some issues with dnr. I'm trying to run a script which generates a list of files for deployment. If I run the script on it's own, it works find and if I run the deployment it seems to work, but I know the script is not running because I get no output from it. This is what I have. Can anyone see anything wrong with this?
<execDeploymentTask useDefinition="XMLDEPLOY">
<deployNRun>
<dnrDeployment location="source" when="before" triggerPoint="connect" state="always">
<script cmd="/opt/interwoven/iw-home/custom/appdev/common/bin/od_create_file_list.ipl"
as="root"
async="no"/>
</dnrDeployment>
</deployNRun>
</execDeploymentTask>
Thanks
Find more posts tagged with
Comments
Adam Stoller
Sometimes the silly questions are worth asking... when you run it from the command line - are you running it as you specified in your DNR or are you running it as: iwperl scriptname
I.e. - is the script executable and does it have the correct path to perl in the #! line on the first line?
--fish
Senior Consultant, Quotient Inc.
http://www.quotient-inc.com
brendang
That's a good question, but unfortunately, I've tried it both with iwperl scriptname. This is my shebang for your information:
#!/opt/interwoven/iw-home/iw-perl/bin/iwperl
Just to make sure that's right I ran the following:
bash-2.03$ /opt/interwoven/iw-home/iw-perl/bin/iwperl -v
This is perl, v5.8.2 built for sun4-solaris-multi
Copyright 1987-2003, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'. If you have access to the
Internet, point your browser at
http://www.perl.com/
, the Perl Home Page.
I've also made sure the script is executable.
Thanks for your help.
brendang
Ok, so I've found that a shell script DOES run. However a perl script does not! Any ideas anyone? Also, call the perl script from the shell script doesn't work.
Thanks
Adam Stoller
What editor did you use to create the perl script? - perhaps there are control-characters in it that you're not seeing.
--fish
Senior Consultant, Quotient Inc.
http://www.quotient-inc.com
brendang
I used Textpad. Almost the same script has been working in our previous version of interwoven. I have also edited it with vi just to check. It's saved as UNIX ANSI and we're running Solaris.
:-(
Thanks again.
Adam Stoller
beats me then - without being in the environment I'm not sure what else I can suggest.
--fish
Senior Consultant, Quotient Inc.
http://www.quotient-inc.com
lhdavis
So when you say you've run it as both does that mean from the command line or in the DnR section? So did you change your DnR section to the following and try it?
<script cmd="/opt/interwoven/iw-home/iw-perl/bin/iwperl /opt/interwoven/iw-home/custom/appdev/common/bin/od_create_file_list.ipl" as="root" async="no"/>
Also, you said you made the script executable (and if you're running it as root it should be executing) but have you made it executable to everyone?
Luke Davis
Open Technology Group, Inc.
luke.davis@med.va.gov
brendang
HI,
Thanks for the reply.
The dnr script runs fine from the command line as a normal user and as root. It's permissions are: -rwxrwxr-x. Yes I've tried this:
<script cmd="/opt/interwoven/iw-home/iw-perl/bin/iwperl /opt/interwoven/iw-home/custom/appdev/common/bin/od_create_file_list.ipl" as="root" async="no"/>
Also, the interesting thing is that normal shell scripts and perl scripts using /usr/bin/perl run fine. It seems to me that it's an environment problem, but as I'm not hosting this it's very hard for me to look at myself. Does anyone know what OD environment variables should be set, eg path etc?
Thanks everyone
brendang
Hi,
Further to what I've written about this. This is the output from the log on the deployment:
ENG: 2004-06-04 11:00:58 EDT GMT-04:00 Thread-514 Executing before-all DNR
ENG: 2004-06-04 11:01:00 EDT GMT-04:00 No of children = 6, failed = 0
ENG: 2004-06-04 11:01:00 EDT GMT-04:00 All 6 children completed their phases
ENG: 2004-06-04 11:01:00 EDT GMT-04:00 EXITING [setup] ENTERING [dotask]
ENG: 2004-06-04 11:01:00 EDT GMT-04:00 Waiting for 6 children for completion of disconnect routine
ENG: 2004-06-04 11:01:00 EDT GMT-04:00 Thread-514Executing after-all DNR
ENG: 2004-06-04 11:01:00 EDT GMT-04:00 In TPostDisConnectActions run method
I am now just running a shell script as shown:
#!/bin/sh
touch /tmp/iamrunning_20040604
echo "<response code=\"-2\" />"
and it runs! The iamrunning_20040604 file is created. The deployment carries on and deployes the content too.
This is my dnr configuration:
<deployment transactional="yes">
<execDeploymentTask useDefinition="FORMSDEPLOY" />
<execDeploymentTask useDefinition="XMLDEPLOY" />
<execDeploymentTask useDefinition="OTHERDEPLOY" />
<dnrDeploymentJob location="source" when="before" state="always">
<script cmd="/opt/interwoven/iw-home/custom/appdev/mtvn/bin/od_dnr_create_tmp_dir.sh" as="root" where="" async="no" />
</dnrDeploymentJob>
</deployment>
</deploymentConfiguration>
Thansk
nipper
2 things, it is possible (not certain) that taint mode for Perl is taking over. Might look into that.
Also, have you tried (in perl) writing to a log & teminating ? See if it starts or not. (I saw you had
a simple shell script, did not see the perl)
ANdy
brendang
Hi,
I'm not sure if taint mode is being turned on. Perl, doesn't seem to work at all. However I decided to log out what env is when OD tries to run a script:
IWODRMIPORT=9173
LANG=C
LD_LIBRARY_PATH=/opt/interwoven/OpenDeployNG/jre/bin/../lib/sparc/client:/opt/interwoven/OpenDeployNG/jre/bin/../lib/sparc::
/opt/interwoven/OpenDeployNG/lib
NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat
PATH=/usr/ucb:/opt/interwoven/OpenDeployNG/bin:/usr/sbin:/usr/bin:/opt/VRTSvcs/bin:.:/usr/sbin:/sbin:/usr/bin
PERL5LIB=/opt/VRTSvcs/lib/perl5
PWD=/opt/VRTSvcs/bin/Application
<removed the rest to make it easier to read>
Also, in od.log I see these errors:
BEGIN failed--compilation aborted at /opt/interwoven/iw-home/custom/appdev/common/bin/od_create_file_list.ipl line 24.
Perl lib version (5.00404) doesn't match executable version (5.008002) at /opt/VRTSvcs/lib/perl5/Config.pm line 7.
Compilation failed in require at /opt/VRTSvcs/lib/perl5/DynaLoader.pm line 17.
Compilation failed in require at /opt/VRTSvcs/lib/perl5/IO/Handle.pm line 246.
Compilation failed in require at /opt/VRTSvcs/lib/perl5/IO/Seekable.pm line 50.
BEGIN failed--compilation aborted at /opt/VRTSvcs/lib/perl5/IO/Seekable.pm line 50.
Compilation failed in require at /opt/VRTSvcs/lib/perl5/IO/File.pm line 111.
BEGIN failed--compilation aborted at /opt/VRTSvcs/lib/perl5/IO/File.pm line 111.
Compilation failed in require at /opt/interwoven/iw-home/iw-perl/vendor/lib/Date/Manip.pm line 205.
BEGIN failed--compilation aborted at /opt/interwoven/iw-home/iw-perl/vendor/lib/Date/Manip.pm line 205.
Compilation failed in require at /opt/interwoven/iw-home/custom/appdev/common/bin/od_create_file_list.ipl line 24.
BEGIN failed--compilation aborted at /opt/interwoven/iw-home/custom/appdev/common/bin/od_create_file_list.ipl line 24.
So, I'm thinking this is the problem. I am having trouble convincing my hosting people of this though. Is there a way I can force the libraries used by perl to be the interwoven supplied ones so I can prove that this is the problem?
Also, In the script I provided:
#!/bin/sh
env > /tmp/iamrunning_20040604
echo "<response code=\"-2\" />"
I am trying to make interwoven abort the deployment. This doesn't seem to be happening. Any ideas?
Thanks!
nipper
Perl lib version (5.00404) doesn't match executable version (5.008002) at /opt/VRTSvcs/lib/perl5/Config.pm line 7.
That path is a different path than the shebang line you posted earlier. Looks like your own perl libraries are not
compatibile with the one IW shipps.
5.00404 is pretty old.
Andy
brendang
Hi Everyone,
In the end I printed out all the environment variables when the script was invoked (see my earlier post). I convinced my hosting people to change the PERL5LIB location in the startup scripts for opendeploy and all is working.
Thanks