Matt wrote:
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
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,