GENERIC CORBA SupportsGuide 31
GENERIC CORBA SupportsGuide 31
Guide to
IBM CORBA Probes
by
Jim Hutchinson
Document release: 3.1
Supports Guide to IBM CORBA probes
Table of Contents
1Introduction...................................................................................................................................3
1.1Overview......................................................................................................................................3
1.2Extra debugging..........................................................................................................................4
1.2.1CORBA Framework probe........................................................................................................4
1.2.2Visibroker probe.......................................................................................................................4
1.3UNIX file overview.......................................................................................................................5
1.4Connection Overview..................................................................................................................6
1.5Connection Example...................................................................................................................7
2Patch considerations...................................................................................................................8
2.1Java runtime environment...........................................................................................................8
2.2Non-native probe.........................................................................................................................9
2.3CORBA Framework...................................................................................................................10
2.3.1dumpns tool............................................................................................................................10
2.4SDK Java...................................................................................................................................10
3Common Properties...................................................................................................................11
3.1Non-Native Probe......................................................................................................................11
3.1.1FlushBufferInterval.................................................................................................................11
3.1.2NetworkTimeout Property.......................................................................................................11
3.2Probe framework.......................................................................................................................12
3.2.1Command port properties.......................................................................................................12
3.2.2Recovering lost connections...................................................................................................12
3.2.3Event Synchronisation............................................................................................................12
3.2.4Internal event queue...............................................................................................................12
3.3Additional probe specific properties..........................................................................................13
3.3.1Resynchronisation properties.................................................................................................13
3.3.2Stream capture properties......................................................................................................13
4IOR (Interoperable Object Reference) files..............................................................................14
4.1IOR Parser Tool.........................................................................................................................14
5Examples.....................................................................................................................................15
5.1Huawei T2000 probe.................................................................................................................15
5.1.1IOR files..................................................................................................................................15
5.1.2Host, Port, Object ...............................................................................................................15
5.2Generic TMF814 Probe.............................................................................................................16
5.2.1Basic settings.........................................................................................................................16
5.2.2IOR file properties...................................................................................................................16
5.2.3Host, Port, Object properties..................................................................................................16
5.2.4The ReleaseTMF814 property................................................................................................17
5.2.5Successful Connection...........................................................................................................17
5.2.6Types of log file messages:....................................................................................................18
5.3Huawei U2000 CORBA probe...................................................................................................19
5.4The Nokia NetAct v6 probe.......................................................................................................20
5.5Ericsson OSS-RC probe............................................................................................................21
5.5.1Default object naming.............................................................................................................21
5.5.2Typical settings.......................................................................................................................22
6Additional Logging.....................................................................................................................23
6.1IBM CORBA debug logging.......................................................................................................23
6.2Non-native debug logging..........................................................................................................23
6.3SSL debug logging....................................................................................................................23
6.4CLASSPATH debugging...........................................................................................................23
7The HTTP Command Line Interface..........................................................................................24
1 Introduction
1.1 Overview
The IBM CORBA probes have gone through a few transitions since Micromuse was acquired by IBM. Initially the
probes use the Visibroker CORBA broker, and the IBM CORBA broker. The latest CORBA probes use the JACORB
CORBA framework.
To determine if a probe uses CORBA review the Summary section of the probes manual and confirm the
connection method is defined as CORBA:-
To determine which of the CORBA packages the probe uses, check the supporting packages or the jar files in the
probes CLASSPATH.
Visibroker CORBA probes uses the Visibroker JAR files in the probes CLASSPATH:
• vbjorb.jar
• vbsec.jar
• nco_p_alcatel_5620_sam_3gpp_v8
• nco_p_cisco_ctm_corba_v9
• nco_p_alcatel_wnms
• nco_p_lucent_snms
• nco_p_huawei_M2000_corba
• nco_p_huawei_N2000_corba
• nco_p_huawei_T2000_corba
• nco_p_nokia_netact_3gpp_v6
• nco_p_siemens_tnms_TMF814
• nco_p_zte_e300
• nco_p_zte_corba_wcdma
• nco_p_zten31_fixednms_corba
• nco_p_spectrum_corba_v9
• nco_p_eci_lightsoft_tmf814
• nco_p_siemens_corba_v2
Currently only the Spectrum probe uses Visisbroker, whose RTU user license comes from the Spectrum server.
e.g.
Not all probes that use the Non-native probe patch are IBM CORBA probes, but all IBM CORBA probes use the
Non-native probe patch.
JAR files used by the Generic TMF814 probe [IBM CORBA probe]:
IOR files can be used to define the host, port, object to be connected to. The IOR files are provided by the Element
Management System. The port numbers used by the ems may be dynamic, and it is important to ensure that the
customer is aware of this, especially if the CORBA probe is installed remote from the ems.
IOR:000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000
This string defines the type of service, as well as the host, port and object;
e.g.
Name: com/ericsson/nms/cif/service/NMSNAConsumer
Type: IDL:3gppsa5.org/NotificationIRPSystem/NotificationIRPOperations:1.0
Host: 192.168.226.54
Port: 31488
Most probes allow IOR or host/port/object name definition in the probes properties files. These properties are
mutually exclusive.
The connection method at this level is over TCP/IP using the IBM CORBA software to create the probes ORB
(Object Requesting Broker).
When firewalls exist between the IBM CORBA probe and Element Management System, it becomes necessary to
define the port numbers being used by both the probe and Element Management System.
The probes connectivity can be defined using ORBLocalHost and ORBLocalPort, where these properties are
available. If they are not available, a request for enhancement must be raised.
Firewall
EMS Probe
Connect
NamingService NSProbe
CORBA Framework
Notification
NotificationIRP
EMS Specific Probe jar
2 Patch considerations
2.1 Java runtime environment
Ensure that the correct version of java is available as defined in the probes readme file or in the probes
documentation;
You can set the correct version of java using the NCO_PROBE_JRE variable in the $PROGRAM.env file where
PROGRAM is the probes script name.
e.g.
cd $NCHOME/omnibus/probes/java
vi nco_p_huawei_M2000_corba.env
#! /bin/sh
stderr
Related files:
$NCHOME/omnibus/probes/<platform>/nco_p_nonnative
$NCHOME/omnibus/probes/java:
• NSProbe.jar
$NCHOME/omnibus/probes/java/corba:
• corba_v2.0.jar
• CorbaFrameworkBase.jar
• CorbaFrameworkTMF814.jar
$NCHOME/omnibus/probes/java/corba/jacorb-3.3/lib:
• jacorb.jar
• slf4j-api-1.6.4.jar
• slf4j-jdk14-1.6.4.jar
Example:
cd $NCHOME/omnibus/probes/java/corba
./dumpns nshost nsport
Where
nshost is the IP Address or FQDN for the Naming Service host
nsport is the port number for the Naming Service
$NCHOME/omnibus/probes/java:
• framework.jar
• IntegrationsSupport.jar
• JSON4J_Apache.jar
• NSHeadServices.jar
• ProbeServices.jar
• TestServices.jar
3 Common Properties
Buffering : 1
BufferSize : 100
FlushBufferInterval : 11
Where EPS is the events per second, and the interval is set to the nearest prime or odd number to the required
value.
The buffer can be filled during the FlushBufferInterval, with events being sent to the object server, but the
FlushBufferInterval should be set to a required maximum amount of time that is acceptable for events to be delayed
at the probe level.
It’s recommended to set the FlushBufferInterval property to values greater than 10 seconds, however, if the probe
connects to a dedicated collection layer object server, the FlushBufferInterval property can be set to 1 to ensure
event delivery is not delayed due to buffering.
From a performance perspective, sending events in large blocks should be more efficient than sending events one
at a time or in smaller blocks. However, there is a point whereby the loading of the object server with event blocks
reaches a levelling point; this point is different for every system.
The NetworkTimeout is set to zero by default, and can result in the probe being unable to notice when an
ObjectServer connection is lost, due to network problems. It is therefore best practice to set NetworkTimeout to
some value even when the probe does not connect a backup ObjectServer. When setting NetworkTimeout always
set PollServer as this is set to 0 as well. PollServer should always be larger than NetworkTimeout.
e.g.
NetworkTimeout : 15
PollServer : 30
Default setting:
NetworkTimeout : 0
PollServer : 0
NOTE : The command port was replaced by the HTTPD interface as the probes command line interface
The command port should be set to any available port on the system. If the probe is being used within a firewall
environment, the firewall administrator must allocate a port or be notified of the allocated port. If a number of custom
user tools are being used, the the CommandPortLimit may need to be increased along with the number of
connections setting for the nco_pad process.
e.g.
Default:
CommandPort : 6970
CommandPortLimit : 10
The probe includes a number of features to ensure that the connection to the EMS is maintained and is
recoverable. By default the probe does not exit due to inactivity or retry the connection. The probe checks the EMS
connection periodically every 60 seconds by default.
Example settings:
RetryCount : 3
RetryInterval : 11
HeartbeatInterval : 60
Inactivity : 3600
Default:
RetryCount : 0
RetryInterval : 0
HeartbeatInterval : 60
Inactivity : 0
By default the probe does not attempt to synchronise the events in the EMS.
Default:
InitialResync : 'false'
ResyncInterval : 0
The internal event queue, which is the number of events allowed to be held between the EMS specific probe jar and
the non-native probe jar, is set to 10,000 by default. If the probe logs NSProbe messages regarding the queue
being full, it is best to examine why the probe is unable to process the event volumes, as it is an indication that
there is a performance problem at the ObjectServer or possibly the probe server.
Default:
MaxEventQueueSize : 10000
The size of the batches collected from the EMS can affect performance, and the probes Buffering settings should
be adjusted according to the batch size, so as to ensure that data is processed efficiently. The Generic TMF814
probe allows basic filtering, with the filtering being exclusion filters.
Default settings:
ResyncBatchSize : 100
ResyncProbableCauseFilter : ''
ResyncSeverityFilter : ''
The Stream capture files can be used to check what data arrives via the CORBA interface and is useful for in depth
analysis of the event data. It is not a feature that is useful in a production environment.
Default settings:
StreamCapture : 0
StreamCaptureFilePath : ''
CORBA uses an interface definition language (IDL) to specify the interfaces that CORBA objects present to the
outside world. CORBA implementation are usually written in C++ or Java.
The IOR files are provided by the ems (Element Management System) the probe connects to, when using the
CORBA interface. Some IOR files are dynamic, and are subject to change, usually when the ems is restarted, and
may need to be updated.
Most CORBA probes allow IOR files to be replaced by the host, port, object instead. The definition of each CORBA
service (host/port/object) is usually provided by the ems, or else the current IOR files can be gathered manually by
the ems administrator.
Example:-
http://www2.parc.com/istl/projects/ILU/parseIOR/
e.g.
IOR:000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000
Might return:-
Name: com/ericsson/nms/cif/service/NMSNAConsumer
Type: IDL:3gppsa5.org/NotificationIRPSystem/NotificationIRPOperations:1.0
Host: 192.168.226.54
Port: 31488
5 Examples
ORBInitialHost : "192.168.1.6"
ORBInitialPort : 32805
NamingContextPath : "TMF_MTNM.Class/Cisco Systems.Vendor/Cisco
TransportManager.EMSInstance/7_0.Version/CTM.EMS/SessionFactory.EmsSessionFactory"
The EMS connection can be checked using the dumpns tool if the EMS administrator is unable to confirm details or
when the EMS connectivity needs to be confirmed.
e.g.
./dumpns emsserver.company.com 56468
…
INFO: ClientConnectionManager: found ClientGIOPConnection to <IP-ADDRESS>:56468 (c4ef1)
NotificationService
AlarmIRP
NotificationIRP
EMSSessionFactory
...
The IOR files from the EMS can used to test probe connectivity:
e.g.
NamingServiceIORFile : '/opt/IBM/tivoli/netcool/omnibus/var/ns.ior'
IORFile : '/opt/IBM/tivoli/netcool/omnibus/var/emssessionfactory.ior'
It is recommended that the host, port, and object name are used to define the EMS connection as this will ensure
that probe can connect, even when the IOR files are updated, usually following an EMS restart.
e.g.
NamingServiceHost : 'emsserver.company.com'
NamingServicePort : 56468
NamingContextPath : 'EMSSessionFactory'
The ReleaseTMF814 property can be worked out via the NamingContextPath obtained from the dumpns tool.
NamingContextPath = tmfClass/tmfVendor/tmfEmsInstance/tmfVersion/tmfEntity
Example NamingContextPaths:
ReleaseTMF814 : '2.0'
TMF_MTNM.Class/LSN.Vendor/LSN:EMS_XDM_nn.EmsInstance/2_0.version/LSN:EMS_XDM_nn.EmsSessio
nFactory_I
ReleaseTMF814 : '3.0'
TMF_MTNM.Class/HUAWEI.Vendor/Huawei\/U2000.EmsInstance/3\.0.Version/Huawei.EmsSessionFact
ory_I
ReleaseTMF814 : '3.5'
TMF_MTNM.Class/Networks.Vendor/Networks:EmsInstance/3_5.Version/Networks:EmsSessionFactor
y_I
If the ReleaseTMF814 value is not apparent, try using all of the allowed ReleaseTMF814 values, or else check with
the EMS administrator which version is used.
When the probe successfully connects with defined ORBLocalHost and ORBLocalPort the following ports should be
seen:
tcp6 0 0 <ORBLocalHost>:<ORBLocalPort> :::* LISTEN
tcp6 0 0 <ORBLocalHost>:<ORBLocalPort> <NamingServiceHost>:<RANDOM_PORT> ESTABLISHED
• Invalid port:
Error: E-JPR-000-000: Failed to get IOR Object : org.omg.CORBA.ORBPackage.InvalidName:
NameService:org.omg.CORBA.TRANSIENT: java.net.ConnectException: Connection refused:host=<IP>,port=5646 vmcid:
IBM minor code: E02 completed: No
cd $NCHOME/omnibus/probes/java/corba
./dumpns 192.168.20.21 34634
…
TMF_MTNM.Class/HUAWEI.Vendor/Huawei\/U2000.EmsInstance/2\.0.Version/Huawei\/U2000.EmsSess
ionFactory_I
Note: If only the Naming Server IOR is given use the IOR parser to get the host/port from the IOR string:
http://www2.parc.com/istl/projects/ILU/parseIOR
# Object Server
Server : 'COL_P'
NetworkTimeout : 30
PollServer : 60
# Huawei U2000
# reachable with IIOP 1.2 at host "192.168.20.21", port 34634
NamingServiceHost : '192.168.20.21'
NamingServicePort : 34634
NamingContextPath :
'TMF_MTNM.Class/HUAWEI\.Vendor/Huawei\\/U2000.EmsInstance/2\\.0.Version/Huawei\\/U2000\.EmsSessionFactory_I'
# Local ORB settings
ORBLocalHost : '192.168.60.60'
ORBLocalPort : 6060
#EOF
Where 192.168.60.60 is the probe servers ip address and the port 6060 is a free port.
The NamingContextPath escapes the '\' symbols using '\' in this case.
Make sure:
File: $OMNIHOME/probes/java/corba/jacorb-3.3/etc/jacorb.properties
jacorb.dns.enable=off
cd $NCHOME/omnibus/probes/java/corba
./dumpns 192.168.20.30 57848
NotificationService
EPIRP
NOTIFICATIONIRP
ALARMIRP
Note: If only the Naming Server IOR is given use the IOR parser to get the host/port from the IOR string:
http://www2.parc.com/istl/projects/ILU/parseIOR
The '1z1' events are stateless events and specific to the EMS Vendor. The Generic 3GPP
probe doesn't support and will not connect to the Event IRP channel, because of the
vendor specific event types.
What if the '1z1' events are sent through the Alarm IRP channel; the Generic 3GPP probe
does not support this configuration. Only the Generic 3GPP event types are supported and
processed by the Generic 3GPP probe.
com/
ericsson/
nms/
fm_cirpagent/
EventIRP
AlarmIRP
cif/
service/
NMSNAConsumer
Server : "COL_P"
ServerBackup : "COL_B"
NetworkTimeout : 15
PollServer : 30
Manager : 'ericsson_ossrc_generic_3gpp'
MessageLog : '$OMNIHOME/log/ericsson_ossrc_generic_3gpp.log'
# Connection to EMS
NamingServiceHost : '<naming service host>'
NamingServicePort : <naming service port>
# 3GPP Version specific settings
Release3GPP: "V3.2"
IDLAttrMapFile :
'/opt/IBM/tivoli/netcool/omnibus/probes/includes/generic_3gpp_v3_2_RuleElementMap.xml'
# Determine if slash or dot notation is required using dumpns
# Slash notation:
AlarmIRPName : 'com/ericsson/nms/fm_cirpagent/AlarmIRP'
NotificationIRPName : 'com/ericsson/nms/cif/service/NMSNAConsumer'
# Dot notation:
#AlarmIRPName : 'com.ericsson.nms.fm_cirpagent.AlarmIRP'
#NotificationIRPName : 'com.ericsson.nms.cif.service.NMSNAConsumer'
# Debugging if required
#ORBDebug : 'true'
#ORBDebugFile :
'$OMNIHOME/log/ericsson_ossrc_generic_3gpp_orb_debug.log'
# Local ORB details
ORBLocalHost : '<probe server>'
ORBLocalPort : <free port on probe server>
# Locale settings
ORBCharEncoding : "ISO8859_1"
ORBWCharDefault : "UTF16"
#EOF
6 Additional Logging
6.1 IBM CORBA debug logging
Edit probes environment script and add the following:
vi $NCHOME/omnibus/probes/java/nco_p_<probe>.env
# IBM CORBE Debug logging
NCO_JPROBE_JAVA_FLAGS="-Dcom.ibm.CORBA.Debug=true -Dcom.ibm.CORBA.CommTrace=true
-Dcom.ibm.CORBA.Debug.Output=$OMNIHOME/log/ibm_orb_trace.log $NCO_JPROBE_JAVA_FLAGS"
#EOF
:wq
vi $NCHOME/omnibus/probes/java/nco_p_<probe>.env
vi $NCHOME/omnibus/probes/java/nco_p_<probe>.env
# SSL debug logging
NCO_JPROBE_JAVA_FLAGS="-Djavax.net.debug=ssl:handshake:verbose $NCO_JPROBE_JAVA_FLAGS"
#EOF
After troubleshooting, remember to revert back to the original GA script to prevent patching problems.
help:
Results:
Information: I-UNK-104-002: {"response":"Available commands: acknowledge_alarm(alarm_id
String), resynch_all(), resynch_filter(resync_filter String),
unacknowledge_alarm(alarm_id String), userid_acknowledge_alarm(ack_user_id
String,alarm_id String), userid_clear_alarm(clear_user_id String,alarm_id String),
userid_unacknowledge_alarm(ack_user_id String,alarm_id String), clear_alarm(alarm_id
String), version() ","status":"200"}
resynch_all:
Results:
Information: I-UNK-104-002: {"response":["COMMAND END: resynch_all successfully
completed. Resynchronization OK"],"status":"200"}
It is recommended that the ORBLocalHost and ORBLocalPort are set, when available, and that the ORBLocalHost
is set to an IP Address. The ORBLocalHost and ORBLocalPort need to be accessible from the EMS, and it
generally best to have two connectivity enabled in the firewall, as some firewalls block communications over a
certain size, coming from the unopened direction.
The Command Port is provided using the Nhttpd.* properties in the supported Netcool/OMNIbus versions. However,
the older CommandPort property settings are still used in older probes, such as the Nokia NetAct probe.
When the probe is running successfully both the ORBLocalPort and Nhttpd.ListeningPort should be visible as
listening:
EMS Probe
NamingServicePort
NamingService
AlarmIRP
ORBLocalPort
NotificationIRP
NHttpd.ListeningPort
You can also check the EMS server for listening ports used by the probe, if access is allowed.
If there are notification events being sent the EMS will connect to the probes ORBLocalPort
e.g.
netstat -nl | grep <ORBLocalPort>
tcp6 0 0 :::<ORBLocalPort> :::* LISTEN
tcp6 0 0 <ORBLocalHost>:<ORBLocalPort> <EMSServer>:<RandomPort> ESTABLISHED
Note: Before setting the probes port properties and starting the probe, make sure the ports to be used are free.
8.1.2 Telnet
The telnet command can be used to check that the ports are accessible through firewalls.
For example for the ORBLocalPort, the port can be checked from the EMS using telnet as:
Access to the EMS ports can also be checked, although the use of the dumpns tool is best to use when using the
Naming Service in the probes properties.
9 Property considerations
9.1 Best Practice Property settings
It is best practice to set the ORBLocalHost and ORBLocalPort so that these settings are known and can be
checked. Additionally it is best practice to define timeout values for NetworkTimeout and PollServer, where
PollServer value is greater than the NetworkTimeout value. By default both properties have a setting of 0.
NetworkTimeout: 15
PollServer: 30
ORBLocalHost: "<PROBE_SERVER_IP>"
ORBLocalPort: 5050
With the ORBLocalPort set the 'netstat' command can be used to check it is listening, and to check any ORB debug
logs.
Character encoding:
EncodingStandard: "ISO-8859-1"
EncodingStandard: "UTF-8"
Notification types:
NotificationClientType: SEQUENCE_EVENT"
NotificationClientType: "STRUCTURED_EVENT"