FAQ
Hi all,

Does anyone know why the oracle child process initiated by my perl
program with parent ID of 1?

My system is HPUX 11.11 with PERL5.8.0, DBI1.48, DBD-Oracle-1.16,
Oracle10.2.0.

I have another system with HPUX11.00, PERL5.6.1, DBI1.48,
DBD-Oracle-1.16, Oracle8.1.7 where oracle child process is the pid of
perl program which initiated it.

Any help will be appreciated.

Thans,
Alan

Search Discussions

  • Markd at May 30, 2006 at 4:05 pm

    Kong, Alan wrote:

    Hi all,

    Does anyone know why the oracle child process initiated by my perl
    program with parent ID of 1?

    My system is HPUX 11.11 with PERL5.8.0, DBI1.48, DBD-Oracle-1.16,
    Oracle10.2.0.

    I have another system with HPUX11.00, PERL5.6.1, DBI1.48,
    DBD-Oracle-1.16, Oracle8.1.7 where oracle child process is the pid of
    perl program which initiated it.
    When a process's parent exits, the unix kernel assigns process 1
    (the init process) to be the parent. This is normal unix
    behavior, and the way all "daemons" run.

    The difference between your systems is probably that you are
    connecting differently. In the one case, you're connecting
    via sqlnet listener, and on the other, via the 'beq' scheme.

    When you connect via typical sqlnet setup, your client program
    (be is perl, sqlplus, or anything) makes a TCP connection to
    the oracle listener, and the listener starts the oracle client
    process for your connection. That process then runs as 'daemon'.

    When you connect directly by setting ORACLE_SID, your program
    itself starts the oracle process, so it's the parent.

    Note this has nothing to do with perl or DBI. This is just
    oracle behavior and the same with any oracle client application.
    Also, this is perfectly normal.

    Mark
  • Kong, Alan at May 30, 2006 at 4:16 pm
    Mark,

    First of all, thanks for your reply.

    The problem that I am having is the parent process is still running, and
    the child process shouldn't become a orphan process. The reason why I
    posted this problem in DBI user group is because the problem is not
    there when I login to Oracle with SQL*PLUS, only when I run PERL DBI
    connecting to Oracle shows the child process like an orphan process.

    Alan



    -----Original Message-----
    From: markd
    Sent: Tuesday, May 30, 2006 12:04 PM
    To: Kong, Alan
    Cc: dbi-users@perl.org
    Subject: Re: DBD::Oracle with oracle child process with parent ID of 1

    Kong, Alan wrote:
    Hi all,

    Does anyone know why the oracle child process initiated by my perl
    program with parent ID of 1?

    My system is HPUX 11.11 with PERL5.8.0, DBI1.48, DBD-Oracle-1.16,
    Oracle10.2.0.

    I have another system with HPUX11.00, PERL5.6.1, DBI1.48,
    DBD-Oracle-1.16, Oracle8.1.7 where oracle child process is the pid of
    perl program which initiated it.
    When a process's parent exits, the unix kernel assigns process 1 (the
    init process) to be the parent. This is normal unix behavior, and the
    way all "daemons" run.

    The difference between your systems is probably that you are connecting
    differently. In the one case, you're connecting via sqlnet listener,
    and on the other, via the 'beq' scheme.

    When you connect via typical sqlnet setup, your client program (be is
    perl, sqlplus, or anything) makes a TCP connection to the oracle
    listener, and the listener starts the oracle client process for your
    connection. That process then runs as 'daemon'.

    When you connect directly by setting ORACLE_SID, your program itself
    starts the oracle process, so it's the parent.

    Note this has nothing to do with perl or DBI. This is just oracle
    behavior and the same with any oracle client application.
    Also, this is perfectly normal.

    Mark
  • Mark at May 30, 2006 at 5:23 pm

    Kong, Alan wrote:
    The problem that I am having is the parent process is still running, and
    the child process shouldn't become a orphan process. The reason why I
    posted this problem in DBI user group is because the problem is not
    there when I login to Oracle with SQL*PLUS, only when I run PERL DBI
    connecting to Oracle shows the child process like an orphan process.
    So what is the *problem* here? Do you think this is causing
    some actual problem, or are you just concerned because you think
    it is not "right"?

    Anyway, here's a demonstration that this is normal, and depends
    on how you connect. I will demo using sqlplus:

    #1 baseline - no client processes running on DEMO db

    %ps -opid,ppid,command ax | grep oracleDEMO | grep -v grep
    [ no results ]

    #2 connect via listener and look at processes

    % sqlplus -s scott/tiger@DEMO

    SQL> !ps -opid,ppid,command ax | grep oracleDEMO | grep -v grep

    4619 1 oracleDEMO (LOCAL=NO)

    So now there is an oracle process spawned for me. It has parent id 1,
    because it was not started by sqlplus, it was started by the
    oracle listener ( which leaves it to run as a "daemon" -- you might
    want to call it "orphan", but that's just semantics.)


    #3 connect via BEQ

    % setenv ORACLE_SID DEMO
    % sqlplus -s scott/tiger
    SQL> !ps -opid,ppid,command ax | grep oracleDEMO | grep -v grep

    4660 4659 oracleDMEO (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

    SQL> !ps -opid,ppid,command -p 4659

    4659 4586 sqlplus

    In this case, sqlplus itself started the oracle process, so it
    is the parent.


    So if you have an actual problem, and/or your system behaves differently,
    feel free to reply, but I suggest off-list at this point, since it's
    not perl/dbi related.

    Mark


    -----Original Message-----
    From: markd
    Sent: Tuesday, May 30, 2006 12:04 PM
    To: Kong, Alan
    Cc: dbi-users@perl.org
    Subject: Re: DBD::Oracle with oracle child process with parent ID of 1

    Kong, Alan wrote:

    Hi all,

    Does anyone know why the oracle child process initiated by my perl
    program with parent ID of 1?

    My system is HPUX 11.11 with PERL5.8.0, DBI1.48, DBD-Oracle-1.16,
    Oracle10.2.0.

    I have another system with HPUX11.00, PERL5.6.1, DBI1.48,
    DBD-Oracle-1.16, Oracle8.1.7 where oracle child process is the pid of
    perl program which initiated it.

    When a process's parent exits, the unix kernel assigns process 1 (the
    init process) to be the parent. This is normal unix behavior, and the
    way all "daemons" run.

    The difference between your systems is probably that you are connecting
    differently. In the one case, you're connecting via sqlnet listener,
    and on the other, via the 'beq' scheme.

    When you connect via typical sqlnet setup, your client program (be is
    perl, sqlplus, or anything) makes a TCP connection to the oracle
    listener, and the listener starts the oracle client process for your
    connection. That process then runs as 'daemon'.

    When you connect directly by setting ORACLE_SID, your program itself
    starts the oracle process, so it's the parent.

    Note this has nothing to do with perl or DBI. This is just oracle
    behavior and the same with any oracle client application.
    Also, this is perfectly normal.

    Mark

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupdbi-users @
categoriesperl
postedMay 30, '06 at 3:15p
activeMay 30, '06 at 5:23p
posts4
users2
websitedbi.perl.org

2 users in discussion

Kong, Alan: 2 posts Mark: 2 posts

People

Translate

site design / logo © 2022 Grokbase