PEPPLER.ORG
Michael Peppler
Sybase Consulting
Menu
Home
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
Freeware
Sybperl
Sybase::Simple
DBD::Sybase
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
FAQs
Sybase on Linux FAQ
Sybperl FAQ
Personal
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: "Ashish Gupta" <ashish dot gupta at mizuho-sc dot com>
Subject: RE: sybperl, cron and environment variables
Date: Apr 13 2006 5:18AM

Hi Luc,

Thanks for your reply.
And sorry for not replying earlier, there were many problems in the
office related to an application which was earlier handed over to me in
about 30 minutes worth of discussions!

Coming back to my sybperl problem:

The following are some points:

(a) the scripts were running fine from the cron
(b) since the day i installed an RS, they stopped working
(c) from "man cron", i found that cron does not set any env variables
for the programs it executes
(d) even now, the scripts fail if no env variables are set, but run fine
if env variables are set.
(e) dbschema.pl works fine even if no env variables are set.

what is confusing is:

(a) why did my scripts work fine earlier - even from the cron, where no
env variables were set
(b) why does dbschema.pl work fine, but a simple script which i make
(pasted below) does not


simple script which fails (even though with the same env, dbschema.pl
works fine)
------------------------------------------------------------------------
--------------------------------------------------

#!/export/home/guptaash/perl/bin/perl -w

use Sybase::CTlib;

$server = "SYB_DBA61_TKD";
$user = "sa";
$pass = "xxxxxx";

$me = "test_script";
$charset = "iso_1";
$host = "tktecwsd20";

$dbh = Sybase::CTlib->ct_connect($user, $pass, $server, $me, 
					{	CON_PROPS => 	{
CS_SYB_CHARSET  => "$charset",
	
CS_HOSTNAME 	=> "$host"
	
} 
					} );
									
@array_of_rows = $dbh->ct_sql("select @@version");
$result = $array_of_rows[0][0];
	
print "$result\n";



outputs
------------------------------------------
guptaash@tktecwsd20:/export/home/guptaash/my_scripts/exp/bin> a.pl
Sybase::CTlib initialize: ct_init(12500) failed at
/export/home/guptaash/perl/lib/5.8.6/DynaLoader.pm line 253.
Compilation failed in require at a.pl line 3.
BEGIN failed--compilation aborted at a.pl line 3.
guptaash@tktecwsd20:/export/home/guptaash/my_scripts/exp/bin> cd
guptaash@tktecwsd20:/export/home/guptaash> cd dbschema
guptaash@tktecwsd20:/export/home/guptaash/dbschema> dbschema.pl -Usa -S
SYB_DBA61_TKD -D sybsystemprocs -T p -t sp_who
Password: 
Extraction started at:  Thu Apr 13 14:13:30 2006
ASE Version 12.5.2
Running dbschema.pl(2.4.2) on database 'sybsystemprocs' on Thu Apr 13
14:13:30 2006
Create procedures...done.

Extraction finished at: Thu Apr 13 14:13:45 2006

Looks like I'm all done!
guptaash@tktecwsd20:/export/home/guptaash/dbschema> 




Thanks for your kind help.

Best regards,
Ashish





-----Original Message-----
From: Luc Van der Veurst [mailto:lucv@az.vub.ac.be] 
Sent: Thursday, April 06, 2006 4:17 PM
To: ashish.gupta@mizuho-sc.com
Cc: sybperl-l@peppler.org
Subject: Re: sybperl, cron and environment variables



Hi, 

How do you set your sybase environment variables in your profile ?

Do you source a script comparable to Sybase.csh ? 

It seems that the installation of the repserver has overwritten
a script, or made changes in your profile (or whatever script
you source into your cronjobs) so that your cronjobs are using
a different sybase environment.

Check the modification dates of your .profile(s) and scripts that
are sourced in them.

That's my guess,
Luc.


> From: "Ashish Gupta" 
> To: 
> Subject: sybperl, cron and environment variables
> Date: Thu, 6 Apr 2006 15:06:05 +0900
> X-Barracuda-Spam-Score: -1.88
> 
> Hi,
> 
> Please can you help me with a problem probably regarding environment
> variables.
> 
> I had written some scripts in perl and sybperl and put them in the
cron.
> examples:
> 
> ----------------------------------------------------------------
> 01 20 * * * /home/sybase/dbalib/bin/run_dbcc     -s SYB_DBA61_TKD 
> 01 21 * * * /home/sybase/dbalib/bin/update_stats -s SYB_DBA61_TKD 
> 01 22 * * * /home/sybase/dbalib/bin/dump_db      -s SYB_DBA61_TKD
> -syb_zip
> #
> 01  6 * * * /home/sybase/dbalib/bin/check_space  -s SYB_DBA61_TKD
> ----------------------------------------------------------------
> 
> They were working fine.
> 
> Then, I think I installed Replication Server.
> And these scripts stopped working!
> 
> I get an error of the following type:
> 
> ----------------------------------------------------------------
> Your "cron" job on tktecwsd20
> /home/sybase/dbalib/bin/run_dbcc     -s SYB_DBA61_TKD 
> 
> produced the following output:
> 
> Sybase::CTlib initialize: ct_init(12500) failed at
> /home/sybase/perl/lib/5.8.6/sun4-solaris-thread-multi/DynaLoader.pm
line
> 253.
> Compilation failed in require at
> /home/sybase/dbalib/bin/../lib/DBAlib.pm line 86.
> BEGIN failed--compilation aborted at
> /home/sybase/dbalib/bin/../lib/DBAlib.pm line 86.
> Compilation failed in require at /home/sybase/dbalib/bin/run_dbcc line
> 11.
> BEGIN failed--compilation aborted at /home/sybase/dbalib/bin/run_dbcc
> line 11.
> ----------------------------------------------------------------
> 
> When I run the script interactively, by default I get this error.
> But if I set the environment variables related to sybase correctly -
via
> SYBASE.csh - then the scripts work fine.
> 
> What I do not understand is: why were the cron jobs working fine
earlier
> on? and why do they fail now.
> 
> 
> Thanks for your kind help.
> 
> Best regards,
> Ashish
> 
> 
> Note: This e-mail contains privileged and confidential information and
is for 
the sole use of the intended recipient(s).  If you are not an intended 
recipient, you are hereby kindly requested to refrain from printing,
copying, or 
distributing the information contained herein.  Furthermore, any other
use of 
the information contained herein is strictly prohibited.  If you have
received 
this transmission in error, please kindly notify the sender immediately
and 
destroy all copies of the original message.

Note: This e-mail contains privileged and confidential information and is for the sole use of the intended recipient(s).  If you are not an intended recipient, you are hereby kindly requested to refrain from printing, copying, or distributing the information contained herein.  Furthermore, any other use of the information contained herein is strictly prohibited.  If you have received this transmission in error, please kindly notify the sender immediately and destroy all copies of the original message.