Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
Database Servers
DB2InformixIngresMS SQLOraclePervasive.SQLPostgreSQLProgressSybase
Desktop Databases
FileMakerFoxProMS AccessParadox
General
General DB TopicsDatabase Theory
Related Topics
Java Development.NET DevelopmentVB DevelopmentMore Topics ...

Database Forum / DB2 Topics / April 2006

Tip: Looking for answers? Try searching our database.

Multiple Instances and their corresponding entries in the services file

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Matt - 27 Apr 2006 14:14 GMT
I have approximately 5 instances on my test server that are identical
to my prod server.  On the prod server, when I look at the services
file, there is a single entry per instance and everything seems to be
working fine.  However, on the test server, after creating each
instance, there are 4 entries per instance.  Is there a need for all 4
of these entries?  When I add a new service for each instance like on
the prod server and then change the SVCENAME parm for each instance to
match the new service name, I have problems.  I keep receiving an error
about the SQL6031N  Error in the db2nodes.cfg file at line number "0".
Reason code "11".  Any ideas as to why it works on my prod server but
not on my test server?  Thanks in advance for any help.  Also, here is
an example of the services entries for 1 of the instances on the test
server.

DB2_db2inst1    60000/tcp
DB2_db2inst1_1  60001/tcp
DB2_db2inst1_2  60002/tcp
DB2_db2inst1_END 60003/tcp
Phil Sherman - 27 Apr 2006 14:49 GMT
Your error message is not surprising. Review the complete description of
the SVCENAME data base manager parameter. The port address specified is
"the first of two consecutive ports ...".

Use even numbered port addresses only; 60000, 60002, 60004, 60006.

Phil Sherman

> I have approximately 5 instances on my test server that are identical
> to my prod server.  On the prod server, when I look at the services
[quoted text clipped - 14 lines]
> DB2_db2inst1_2  60002/tcp
> DB2_db2inst1_END 60003/tcp
Matt - 27 Apr 2006 14:54 GMT
Thanks for the reply.  I'm curious why it works on my prod server but
not on my test server.  Does it make a difference if I have Workgroup
Edition on my prod server and EE on my test server?  Also, I just
realized that both servers are not at the same fixpack.  Could this be
the problem?  Thanks.
Phil Sherman - 27 Apr 2006 15:09 GMT
OOPS - incomplete response

The error message states that the defined value in the DBM config does
not have a matching entry in the services file. The second port, one
number higher, is used for interrupt requests from down-level clients.

I'm guessing that your test system uses descriptive names for the port
addresses. Check the services file to verify that the matching names are
indeed in the file.

If the create instance procedure is generating services entries for four
ports for each instance, then I'd suspect that this is early preparation
for some possible future feature of UDB. Note that this is my personal
speculation.

If all the DBM SVCENAMEs match with the first entry in each set in the
services file, try using the actual port addresses in the DBM
configuration to see if this eliminates the error message. You could
also check to see if any fixpak(s) have fixes that resolve a SVCENAME
problem like yours.

Phil Sherman

> Your error message is not surprising. Review the complete description of
> the SVCENAME data base manager parameter. The port address specified is
[quoted text clipped - 22 lines]
>> DB2_db2inst1_2  60002/tcp
>> DB2_db2inst1_END 60003/tcp
Gert van der Kooij - 27 Apr 2006 15:03 GMT
> I have approximately 5 instances on my test server that are identical
> to my prod server.  On the prod server, when I look at the services
[quoted text clipped - 14 lines]
> DB2_db2inst1_2  60002/tcp
> DB2_db2inst1_END 60003/tcp

Those service entries should not be used as SVCENAME. They are used
internally by DB2. You should have other entries in the sevices file. In
my case it also contains the entry 'db2c_DB2    50000/tcp'.
Just add entries to the services file in the 500.. range and use those
names or portnumbers in the instance definitions.
Darin McBride - 27 Apr 2006 15:45 GMT
> I have approximately 5 instances on my test server that are identical
> to my prod server.  On the prod server, when I look at the services
[quoted text clipped - 14 lines]
> DB2_db2inst1_2  60002/tcp
> DB2_db2inst1_END 60003/tcp

Is your test server set up identical to your production server?  The reason
why I ask is that these extra service entries should only show up on DB2
UDB ESE, and not on any other product.  So if you have ESE on your test
server, but WSE on your production server, for example, that would explain
this difference.

With non-ESE servers, you get one service entry: the connection port.  This
entry is usually something like "db2c_<instancename>" unless you opted for
a different name during instance creation (usually in the GUI or response
file).  This name goes in your SVCENAME parameter.  Again, this should
largely be automatic.  (Using db2icrt directly, however, may not create
this, so then it's manual.)

With ESE servers, you get the above connection port PLUS you get
FCM/INTRA-PARALLEL ports.  These are *always* of the format
"DB2_<instancename>".  The ones with _1, _2, and _END in your example
aren't needed by DB2 explicitly - they are derived internally by just
adding the node number to the port number.  They are placed in your
services file mostly to prevent other applications from trying to use them.

These ports are only needed if you're using multiple nodes (whether logical
or physical) in a DPF environment *or* you have intra-parallel turned on,
as I recall.  However, even if you're not using either of these yet, DB2
creates them during instance creation (unless they alread exist) to reserve
the ports for when you do need to scale to use these features.

Since these ports have a predefined name, not only can you not change the
names (you can change the numbers, however, as long as they remain
consecutive and not used by any other application on the machine, as well
among the entire cluster if using DPF), you need not configure DB2 in any
way to tell DB2 what the names are.  So do not set the SVCENAME to these
values.  Leave SVCENAME referencing the connection port from your services
file.

Hope that helps,
Matt - 27 Apr 2006 16:18 GMT
Thank you all for your help.  The problem seems to be that we have WSE
on the prod server and EE on the test server.
Ian - 30 Apr 2006 21:54 GMT
> With ESE servers, you get the above connection port PLUS you get
> FCM/INTRA-PARALLEL ports.  These are *always* of the format
> "DB2_<instancename>".  The ones with _1, _2, and _END in your example
> aren't needed by DB2 explicitly - they are derived internally by just
> adding the node number to the port number.  They are placed in your
> services file mostly to prevent other applications from trying to use them.

Two minor corrections:

These ports are necessary for ESE only, not when you have INTRA_PARALLEL
enabled (otherwise you couldn't use INTRA_PARALLEL with anything other
than ESE!

Also, the DB2_<instancename> and DB2_<instancename>_END ports are both
required, but the _1, _2, etc are not.
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.