Hi Rajesh,
Sorry, meant to get back to you on this sooner but things have been pretty
busy for me.
I can't say for sure, but maybe this is a problem with character case. You
don't say if you're using NetView for Windows or Unix, so for your
reference any command I give are for Unix.
I would check the data in the DB using a couple of netview commands or a
shell script:
#!/bin/ksh
for selname in `/usr/OV/bin/nvUtil e "('EServer_sysName' ~ '.')"`; do
echo "$selname ::" `/usr/OV/bin/ovobjprint -s $selname | grep
EServer_sysName`
done
This should give you a list of the object selection names and the related
setting for the EServer_sysName field. If the EServer_sysName field shows
data that is not all UPPERCASE for the three problem workstations (1, 3,
and 4) no object will be returned in your query.
If this is the case, you could update the field data in the DB to all
uppercase using the nvdbimport command, or remove the "
ComponentName.MakeUpper ();" line from the "AddComponentToSubmap()"
function and make sure the ComponentName is passed in the same character
case as it is stored in the DB. These are just a couple of starting point
ideas since, as in perl, timtowtdi (there is more than one way to do it).
I hope this helps.
Regards,
Greg Keetch
IT Specialist (Advisor), Network Services
Network Management Tools Specialist
Information Technology Services Americas (ITSA), Global Services, IBM
Canada
"Lakka, Rajesh
Kumar"
<Rajesh.Lakka@in. To
unisys.com> <nv-l@lists.ca.ibm.com>
Sent by: cc
nv-l-bounces@list
s.ca.ibm.com Subject
[NV-L] Why is it that some symbols
dont get added to the submap
09/20/2006 02:23
AM
Please respond to
Tivoli NetView
Discussions
<nv-l@lists.ca.ib
m.com>
Dear NetView experts and group members,
My name is Rajesh. I am facing a peculiar problem here. I am developing a
connector program for the Tivoli NetView 7.1.4
I am having 5 systems (computers) in the same network segment or different.
(192.168.ABC.).
Let us say the hostnames of the 5 systems are as follows:
Work Station 1
Work Station 2
Work Station 3
Work Station 4
Work Station 5
All these 5 systems are discovered by netview and their nodes are displayed
on the console.
I create a submap in my own function :
CreateESubmap (){
int nnodes;
??..
??..
symbolId = OVwCreateSymbolBySelectionName
(OVwGetMapInfo(),pSymbolList->symbols[i].submap_id,SubmapName,"Network:cpEServer",submapName,ovwNormalStatus,ovwCompoundStatusSource,
NULL, ovwMergeDefaultCapabilities);
objectId = OVwDbSelectionNameToObjectId (submapName);
submapId = OVwCreateSubmap
(OVwGetMapInfo(),objectId,ovwSharedSubmap,ovwNoSubmapType,submapName,ovwBusLayout,ovwNoSubmapFlags);
//WHEN THE CODE REACHES HERE I CAN SEE THE SUBMAP IMAGE WITH THE NAME
submapName IS SHOWN IN THE CONSOLE.
//Now I want to add symbols to the submap which is already created.
//I try to add these work stations to the submapName.Now I try
//to add all these 5 Work Stations to the submap.
//One Workstation at a time in this for loop
for(int i=0;i<4;i++){
If(addcomponenttosubmap(submapid,objectId,workstation))
{
nnodes=nnodes+1
}
}
The implementation of addcomponenttosubmap is illustrated below.
bool CNV_ESDiscoveryDlg::AddComponentToSubmap(OVwSubmapId submapId,
CString Component)
{
bool bComponentAdded = false;
int i;
LogMessage ("\nAddComponentToSubmap : Entrance");
OVwObjectId objectId;
OVwObjectIdList * pObjectIdList;
OVwObjectInfo * pObjectInfo;
OVwSymbolId symbolId;
OVwFieldBinding * pFieldValue;
char * pchHostname;
char nodeName[256];
CString ComponentName;
ComponentName = Component;
ComponentName.MakeUpper ();
LogValue ("Component", ComponentName.GetBuffer(1));
for (i = 0; i < MAX_OBJECTS; i++) {
m_objectList[i] = ovwNullObjectId;
}
pFieldValue = new OVwFieldBinding;
pFieldValue->field_val = new OVwFieldValue;
pFieldValue->field_id =
OVwDbFieldNameToFieldId("EServer_sysName");
pFieldValue->field_val->is_list = FALSE;
pFieldValue->field_val->field_type = ovwStringField;
pFieldValue->field_val->un.string_val =
ComponentName.GetBuffer(1);
pObjectIdList = OVwDbListObjectsByFieldValue(pFieldValue);
LogError("AddComponentTosubmap :
OvwDbListObjectsByFieldValue");
if (pObjectIdList != NULL) {
LogMessage ("Object list != NULL");
LogValue ("Object count", pObjectIdList->count);
if (pObjectIdList->count > 0) {
objectId =
pObjectIdList->object_ids[0];
pObjectInfo = OVwGetObjectInfo
(OVwGetMapInfo(), objectId);
symbolId = OVwCreateSymbol (OVwGetMapInfo(),
submapId,
objectId,
"Computer:WinNT",
nodeName,
ovwNormalStatus,
ovwCompoundStatusSource,
NULL,
ovwMergeDefaultCapabilities);
if
(symbolId != ovwNullSymbolId) {
bComponentAdded = true;
//MessageBox(" MCP Componment Added ");
//MessageBox(nodeName);
}
else {
LogError ("AddComponentToSubmap OVwCreate Symbol");
}
}
}
delete pFieldValue->field_val;
delete pFieldValue;
return bComponentAdded;
} // AddComponentToSubmap
The problem I face is that a symbol gets added to the submap only when
pObjectIdList->count > 0 is true only for WorkStation 2 and WorkStation 5.
I can see these symbols under the submapName.
But for WorkStation 1 WorkStation 3 and WorkStation 4 the
pObjectIdList->count > 0 is false so nothing gets added to the submapName.
Even though all the workstations are in the same network segment I am
getting this problem.
If I put a OVwErrorMsg(OVwError()) after pObjectIdList =
OVwDbListObjectsByFieldValue(pFieldValue) always I get the message ?success
?for all the 5 workstations. But after this pObjectIdList->count > 0 is
false for WorkStation 1 WorkStation 3 and WorkStation 4.
Why pObjectIdList->count > 0 is false for WorkStation 1 WorkStation 3 and
WorkStation 4?
Waiting for your response,
Thanking you,
Rajesh_______________________________________________
NV-L mailing list
NV-L@lists.ca.ibm.com
Unsubscribe:NV-L-leave@lists.ca.ibm.com
http://lists.ca.ibm.com/mailman/listinfo/nv-l (Browser access limited to
internal IBM'ers only)
_______________________________________________
NV-L mailing list
NV-L@lists.ca.ibm.com
Unsubscribe:NV-L-leave@lists.ca.ibm.com
http://lists.ca.ibm.com/mailman/listinfo/nv-l (Browser access limited to
internal IBM'ers only)
|