Link to home
Start Free TrialLog in
Avatar of dttai
dttai

asked on

Output from my lsnrctl status- What's wrong??

Hello experts,
I am running Oracle on Linux RedHat.
When I tried to check status  of my listener, I saw some extra info in the output, which I couldn't explain why they are there. The lines questionable outputs are commented with $$$$$$$$$$$$$$ in the below message from lsnrctl status. Do you have an explaination for why they are there?
In short, why the ports of http and ftp are also present in the output of my listener??? I'll post the content of my tnsnames.ora if you so desire, however I can assure you that these http and ftp ports are no way included in tnsnames.ora.

###############begin of output from lsnrctl status#####################

LSNRCTL for Linux: Version 10.1.0.2.0 - Production on 03-NOV-2004 17:54:19
 
Copyright (c) 1991, 2004, Oracle.  All rights reserved.
 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.1.0.2.0 - Production
Start Date                03-NOV-2004 17:52:33
Uptime                    0 days 0 hr. 1 min. 46 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /app/oracle/product/10.1.0/db_1/network/admin/listener.ora
Listener Log File         /app/oracle/product/10.1.0/db_1/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myHostName)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myHostName)(PORT=8080))(Presentation=HTTP)(Session=RAW)) //$$$$$$$$$$$$$$$$$$$$$$$ why it is here????????????$$
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myHostName)(PORT=2100))(Presentation=FTP)(Session=RAW))//$$$$$$$$$$$$$$$$$$$$$$$ why it is here????????????$$
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "titan123" has 1 instance(s).
  Instance "titan123", status READY, has 1 handler(s) for this service...
Service "titan123XDB" has 1 instance(s).
  Instance "titan123", status READY, has 1 handler(s) for this service...
The command completed successfully

###############end of output from lsnrctl status#####################
Avatar of pratikroy
pratikroy

It looks like Oracle now allows you to access the data through the HTTP and FTP protocols. Earlier TCP was the most commonly (or the only) protocol used to enable the data/information transfers across the networks.
If you are not using web access methods to get your data, and don't intend to use these features, then safely remove it and restart the listener.
Avatar of dttai

ASKER

Hi pratikroy,
In fact, I am using Tomcat to access data from Oracle and it is supposed to  use port 8080. However, with that message in Oracle listern output, I couldn't start my Tomcat !!! because it said the port is in use??? Do you see the paradox I am trying to say in here??:
So now the port 8080 is found in Oracle listener because it "knows" that Oracle db is about to be accessed through http.
However, the question how does it know because I haven't started Tomcat (and I can't start Tomcat because the port is already in use!!!)

I asked the question in the first place because when I started Tomcat, Tomcat complained because the port is in use????
Avatar of dttai

ASKER

>>then safely remove it and restart the listener.
Can you elaborate a little more? What do I need to remove and how??
Thanks,
Avatar of dttai

ASKER

Also, I am still perplexed how Oracle listener found these:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myHostName)(PORT=8080))(Presentation=HTTP)(Session=RAW)) //$$$$$$$$$$$$$$$$$$$$$$$ why it is here????????????$$
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myHostName)(PORT=2100))(Presentation=FTP)(Session=RAW))//$$$$$$$$$$$$$$$$$$$$$$$ why it is here????????????$$



I can understand the followings:
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myHostName)(PORT=1521)))
because they are defined in listener.ora

I had not noticed/seen the usage of HTTP and FTP ... so I am in the same boat as yours. I will try and get you some definite answers, but in the mean time have a read through http://download-west.oracle.com/docs/cd/B10501_01/network.920/a96580/architec.htm#1049377
Have you checked your listener.ora ? What are the entries there ?
From Tom Kyte :

Well, it depends on what you are trying to connect to... If you are just trying
to use an HTTP listener, the database is shipped w/ Apache which sits in the
code tree of the database in $ORACLE_HOME/Apache.  The other way, and the way I
THINK you're talking about, is through XML DB to get to the XML DB Repository...

In Oracle9i RELEASE 2, Oracle has implemented the "Protocol Server" (which
provides FTP, HTTP and WebDAV connection capabilities into the database) in the
XML DB Repository.  In order to configure the protocol server, you use XML DB
APIs to update the XML DB configuration file, /sys/xdbconfig.xml.  The reason
you use APIs to update this file is because it doesn't live on your OS or in the
$ORACE_HOME tree, it resides INSIDE the database in the XML DB Repository.  To
see this config, submit the following in sql*plus:
SQL> connect system/blahblah
Connected.

SQL> set long 100000
SQL> set lines 120
SQL> select dbms_xdb.cfg_get().getClobVal()
  2    from dual;

DBMS_XDB.CFG_GET().GETCLOBVAL()
--------------------------------------------------------------------------------
<xdbconfig xmlns="http: //xmlns.oracle.com/xdb/xdbconfig.xsd" xmlns:xsi="http:
//www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:
//xmlns.oracle.com/xdb/xdbconfig.xsd                                     http:
//xmlns.oracle.com/xdb/xdbconfig.xsd">
  <sysconfig>
    <acl-max-age>900</acl-max-age>
    <acl-cache-size>32</acl-cache-size>
    <invalid-pathname-chars>,</invalid-pathname-chars>
    <call-timeout>300</call-timeout>
    <max-session-use>100</max-session-use>
    <default-lock-timeout>3600</default-lock-timeout>
    <resource-view-cache-size>1048576</resource-view-cache-size>
    <protocolconfig>
      <common> *cut for brevity * </common>
      <ftpconfig>
        <ftp-port>2100</ftp-port>
        <ftp-listener>local_listener</ftp-listener>
        <ftp-protocol>tcp</ftp-protocol>
        <session-timeout>6000</session-timeout>
      </ftpconfig>
      <httpconfig>
        <http-port>8080</http-port>
        <http-listener>local_listener</http-listener>
        <http-protocol>tcp</http-protocol>
        <session-timeout>6000</session-timeout>
        <server-name>XDB HTTP Server</server-name>
        <max-header-size>16384</max-header-size>
        <max-request-body>2000000000</max-request-body>
        <servlet-realm>Basic realm=&quot;XDB&quot;</servlet-realm>
        <webappconfig> * cut for brevity * </webappconfig>
      </httpconfig>
    </protocolconfig>
  </sysconfig>
</xdbconfig>

This SHOWS YOU what your ftp and http configuration is.  Specifically,
/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text() is the HTTP port
your protocol server is listening on :-).  You can try to connect in a web
browser by specifying the hostname of your database server along w/ the port of
your protocol server's http setting, i.e. slaphappy.us.oracle.com:8080/.  This
will prompt me for a username/password (it's a DATABASE, after all ;-)), and
once I successfully authenticate I'm connected to the XML DB Repository.

To edit this configuration, you call an XML DB API:

DBMS_XDB.CFG_UPDATE( newconfig SYS.XMLTYPE )

You pass the new xdbconfig.xml file TO this procedure, which updates the
configuration.  This may be a bit daunting if you're not used to using Oracle's
XMLType, so here's an example of using this call to update the FTP & HTTP ports
of the protocol server:

begin
  dbms_xdb.cfg_update(
    updatexml(updatexml(dbms_xdb.cfg_get(),
                        '/xdbconfig/descendant::ftp-port/text()', '2121'),
              '/xdbconfig/descendant::http-port/text()', '19090'));
end;
/

This updates the FTP port to 2121 and the HTTP port to 19090.  For more
information on the database's protocol server, the FTP, HTTP and/or WebDAV
connection settings, XML DB, etc... see the XML Database Developer's Guide in
the Oracle9i Release2 documentation set (available on TechNet (otn.oracle.com).  
In THAT document, Chapter 19 and Appendix A are YOUR friends :-).  I hope this
has helped, good luck!
You could also do :

declare

 v_cfg xmltype;

BEGIN

 select     updateXML(

                updateXML(DBMS_XDB.CFG_GET(),

                         '/xdbconfig/descendant::ftp-port/text()', '2121'),

                         '/xdbconfig/descendant::http-port/text()', '19090')

   into v_cfg

   from dual;

  DBMS_XDB.CFG_UPDATE(v_cfg);

END;

/

This will ensure that the HTTP ports and FTP ports become 19090 and 2121 respectively instead of 8080 and 2100. By doing this the conflict with tomcat should be resolved.

Hope this helps!
ASKER CERTIFIED SOLUTION
Avatar of pratikroy
pratikroy

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of dttai

ASKER

Please allow me sometime to digest. I think the information you provided is very helpful.
By the way, I have temporarily solved the problem (w/o understanding why :)) by restart my Apache server. The Oracle listener status now does NOT have the entry for http, which allows me to start Tomcat w/o a problem. Of course, you deserve all the points being awarded to this question.
Thanks,
Do