Hi,
When I load the small data into the shared memory it works fine. When try with huge data, faced with below problem.
Not sure how the Carp/Heavy.pmc is not present !
From where to get this ?
Please find the truss o/p and the perl script below.
Any help would be great !
Truss -p <pid> Error:
stat64("/opt/app/portal/7.4/pin/perl-5.8.0/lib/5.8.0/sun4-solaris-thread-multi/Carp/Heavy.pmc", 0xFFBF26C0) Err#2 ENOENT
open64("/opt/app/portal/7.4/pin/perl-5.8.0/lib/5.8.0/sun4-solaris-thread-multi/Carp/Heavy.pm", O_RDONLY) Err#2 ENOENT
stat64("/opt/app/portal/7.4/pin/perl-5.8.0/lib/5.8.0/Carp/Heavy.pmc", 0xFFBF26C0) Err#2 ENOENT
open64("/opt/app/portal/7.4/pin/perl-5.8.0/lib/5.8.0/Carp/Heavy.pm", O_RDONLY) Err#2 ENOENT
stat64("/opt/app/portal/7.4/pin/perl-5.8.0/lib/Carp/Heavy.pmc", 0xFFBF26C0) Err#2 ENOENT
open64("/opt/app/portal/7.4/pin/perl-5.8.0/lib/Carp/Heavy.pm", O_RDONLY) = 3
fstat64(3, 0xFFBEFDE8) = 0
fstat64(3, 0xFFBEFC90) = 0
ioctl(3, TCGETA, 0xFFBEFD74) Err#25 ENOTTY
read(3, " # C a r p : : H e a v".., 8192) = 5918
read(3, 0x023DC564, 8192) = 0
llseek(3, 0, SEEK_CUR) = 5918
close(3) = 0
fstat64(2, 0xFFBF2160) = 0
Length of shared data exceeds shared segment size at /opt/app/portal/7.4/pin/apps/gprs_preproc_dup_billdue_chk/billing_due_test.txt line 0
Compilation failed in require at
snm.pl line 16.
write(2, " L e n g t h o f s h".., 188) = 188
setcontext(0xFFBF2090)
mmap(0x00000000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEA50000
munmap(0xFEA50000, 8192) = 0
_exit(255)
Perl Script:
pin@ssapp1033[pin]$ cat
snm.pl
use strict;
use IPC::Shareable;
our %billdue_imsi;
my $glue = 'imsi';
my %options = (
create => 'yes',
exclusive => 0,
mode => 0644,
destroy => 'no',
);
tie %billdue_imsi, 'IPC::Shareable', $glue, { %options } or die "server: tie failed\n";
require "/opt/app/portal/7.4/pin/apps/gprs_preproc_dup_billdue_chk/billing_due_test.txt";
foreach my $c (keys %billdue_imsi) {
print "server: these are $c: $billdue_imsi{$c}";
exit;
}
exit;