RE: Indication with OperationContext Object failed (in Pegasus 2.9.1)

"Swapna Priya Bhaskara" <[email protected]>
Newsgroups gmane.network.open-pegasus.general
Message-ID <[email protected]>
Hi Venkat,

Thanks for the information. 

 

I see the Indication Filter and Handler have //localhost/ (hostname) prefixed. 

 

E:\pegasus\provider-src\provider\CMC_RecoveryIndication>cimcli ni -n root/PG_InterOp CIM_IndicationSubscription

 

CIM_IndicationSubscription.Filter="//localhost/root/PG_InterOp:CIM_IndicationFilter.CreationClassName=\"CIM_IndicationFilter\",Name=\"Filter20192.168.111.61192.168.111.6|1|1@\",SystemCreationClassName

=\"CIM_ComputerSystem\",SystemName=\"cr-in-swapna\"",Handler="//localhost/root/PG_InterOp:CIM_IndicationHandlerCIMXML.CreationClassName=\"CIM_IndicationHandlerCIMXML\",Name=\"Handler20192.168.111.6119

2.168.111.6|1|1@\",SystemCreationClassName=\"CIM_ComputerSystem\",SystemName=\"cr-in-swapna\ <mailto:2.168.111.6|1|1@\%22,SystemCreationClassName=\%22CIM_ComputerSystem\%22,SystemName=\%22cr-in-swapna\> ""

 

When I added the same in provider, it worked. Now I am able to receive the indications with context.

Thanks a lot for your help.

 

 

Thanks,

Swapna.

 

From: Venkateswara R Puvvada [mailto:[email protected]] 
Sent: Monday, May 24, 2010 1:21 PM
To: Swapna Priya Bhaskara
Cc: Manjunath Marlabeeti; [email protected]
Subject: RE: Indication with OperationContext Object failed (in Pegasus 2.9.1)

 


Swapna, 

Enumerate the instance names of subscription (use "cimcli ni" command, don't use cimsub command) and compare it with the subscription names set to the SubscriptionInstanceNamesContainer in the provider. 

Ex. cimcli ni -n root/PG_InterOp CIM_IndicationSubscription 

Venkat




"Swapna Priya Bhaskara" <[email protected]> 

24/05/2010 13:03 

To

Venkateswara R Puvvada/India/IBM@IBMIN 

cc

<[email protected]>, "Manjunath Marlabeeti" <[email protected]> 

Subject

RE: Indication with OperationContext Object failed  (in Pegasus 2.9.1)

 

		




Hi Venkat, 
Here are the enumeration details of the Instances created for Filter and Handler, the output from cimsub –ls and lastly the result of the print statements in provider. 
I verify them to be same. Still waiting to consume the Indication from listener. Unable to sort out the issue. 
  
Result of cimcli gi -n root/PG_InterOp CIM_IndicationFilter –niq 
//Instance of CIM_IndicationFilter 
instance of CIM_IndicationFilter 
{ 
InstanceID = NULL; 
SourceNamespaces = NULL; 
IndividualSubscriptionSupported = TRUE; 
Caption = NULL; 
Description = NULL; 
ElementName = NULL; 
SystemCreationClassName = "CIM_ComputerSystem"; 
SystemName = "cr-in-swapna"; 
CreationClassName = "CIM_IndicationFilter"; 
Name = "Filter20192.168.111.61192.168.111.6|1|1@"; 
SourceNamespace = "root/XXXXX "; 
Query = "SELECT * FROM CMC_RecoveryIndication"; 
QueryLanguage = "WQL"; 
}; 
  
Result of cimcli gi -n root/PG_InterOp CIM_IndicationHandlerCIMXML –niq 
//Instance of CIM_IndicationHandlerCIMXML 
instance of CIM_IndicationHandlerCIMXML 
{ 
InstanceID = NULL; 
OtherProtocol = NULL; 
Protocol = 2; 
Caption = NULL; 
Description = NULL; 
ElementName = NULL; 
SystemCreationClassName = "CIM_ComputerSystem"; 
SystemName = "cr-in-swapna"; 
CreationClassName = "CIM_IndicationHandlerCIMXML"; 
Name = "Handler20192.168.111.61192.168.111.6|1|1@"; 
PersistenceType = 2; 
OtherPersistenceType = NULL; 
Owner = NULL; 
Destination = "https://cr-in-swapna:8189/cimom/TestIndicationConsumer"; 
}; 
  
Result of cimsub -ls 
NAMESPACE                                                      FILTER                                                                                                  HANDLER                                                                                                                                                                  STATE 
root/PG_InterOp  root/PG_InterOp:Filter20192.168.111.61192.168.111.6|1|1@  root/PG_InterOp:CIM_IndicationHandlerCIMXML.Handler20192.168.111.61192.168.111.6|1|1@  Enabled 
  
Print statements from Provider (GenerateIndication method) 
filtername: CIM_IndicationFilter.CreationClassName="CIM_IndicationFilter",Name="Filter20192.168.111.61192.168.111.6|1|1@",SystemCreationClassName="CIM_ComputerSystem",SystemName="cr-in-swapna" 
handlername: CIM_IndicationHandlerCIMXML.CreationClassName="CIM_IndicationHandlerCIMXML",Name="Handler20192.168.111.61192.168.111.6|1|1@",SystemCreationClassName="CIM_ComputerSystem",SystemName="cr-in-swapna" 
  
Thanks,
Swapna. 
  
From: Venkateswara R Puvvada [mailto:[email protected]] 
Sent: Friday, May 21, 2010 6:35 PM
To: Swapna Priya Bhaskara
Cc: Manjunath Marlabeeti; [email protected]
Subject: RE: Indication with OperationContext Object failed (in Pegasus 2.9.1) 
  

Swapna, 

I can't tell the problem with the given information. You may try enumerating the instance names of filter, handler and subscription and verify if the identical to the provider created instance names. 

Venkat

"Swapna Priya Bhaskara" <[email protected]> 

21/05/2010 17:48 

 

To

Venkateswara R Puvvada/India/IBM@IBMIN, "Manjunath Marlabeeti" <[email protected]> 

cc

<[email protected]> 

Subject

RE: Indication with OperationContext Object failed  (in Pegasus 2.9.1)


  

 

		





Hi Venkat, 
 
I have tried removing namespace from filter and handler construction and tried generating the events. But, the events are still not consumed by listener. 
If we send without context (  ptrObjHandler->deliver (objBackInd);  ) the events are being consumed by listener. 
 
Thanks, 
Swapna. 
 
From: Venkateswara R Puvvada [mailto:[email protected]] 
Sent: Friday, May 21, 2010 5:17 PM
To: Manjunath Marlabeeti
Cc: [email protected]
Subject: RE: Indication with OperationContext Object failed (in Pegasus 2.9.1) 
 

Manjunath, 

When subscription is created, Pegasus normalizes the subscription name by removing the namespace from the handler and filter names if they are created in the same namespace of the subscription being created. It seems Pegasus is comparing the normalized subscription name with provider set subscription name. 

Remove Namespace from filter and handler construction (root/PG_Interop in the example give below) from your provider code and verify if listener can receive the indications. If that works, i will file a bug against Pegasus. 

Venkat 

"Manjunath Marlabeeti" <[email protected]> 

21/05/2010 12:36 

  

 

To

Venkateswara R Puvvada/India/IBM@IBMIN 

cc

<[email protected]> 

Subject

RE: Indication with OperationContext Object failed  (in Pegasus 2.9.1)



  

  

 

		





Hi Venkat, 

Thanks for the reply. 
Based on your suggestion I checked handler and filter values from Genrateindication and which are registerd with the cimserver. Below are the values. 

(I have changed hardcoded the IP from 1.1.1.1 to 192.168.111.6) 

Below 1 and 2 are the values of printf in Generateindication function after Handler and filter constructions.( printf("\nHandlerString  %s\n",temp.c_str());) 

1) filterString   
root/PG_InterOp:CIM_IndicationFilter.CreationClassName="CIM_IndicationFilter",Name="Filter20192.168.111.61192.168.111.6|1|1@",SystemCreationClassName= 
"CIM_ComputerSystem",SystemName="CR-IN-MANJU" 

2) HandlerString 
root/PG_InterOp:CIM_IndicationHandlerCIMXML.CreationClassName="CIM_IndicationHandlerCIMXML",Name="Handler20192.168.111.61192.168.111.6|1|1@",Syst 
emCreationClassName="CIM_ComputerSystem",SystemName="CR-IN-MANJU" 

3) after execution of Java client 
values from command : cimsub -l s 
NAMESPACE      root/PG_InterOp   
FILTER     root/PG_InterOp:Filter20192.168.111.61192.168.111.6|1|1@   
HANDLER   root/PG_InterOp:CIM_IndicationHandlerCIMXML.Handler20192.168.111.61192.168.111.6|1|1@   
STATE    Enabled 

with the above values I could not find the exact problem because corresponding handler and filter values are same. 
please could you suggest me a solution based on the above values. 

Thanks, 
Manjunath.M 

From: Venkateswara R Puvvada [mailto:[email protected]] 
Sent: Friday, May 21, 2010 11:54 AM
To: Manjunath Marlabeeti
Cc: [email protected]
Subject: Re: Indication with OperationContext Object failed (in Pegasus 2.9.1) 


Manjunath, 

If the indication provider sets SubscriptionInstanceNamesContainer in the operation context, the subset of subscriptions  specified by the indication provider should be part of the actual matched subscriptions for the indication. Any subscription included by the provider but not containing in the matched subscriptions list is ignored. In your case, the subscription name you have specified in the provider does not seem to be in the actual subscriptions matched for the indication. 

Venkat 

"Manjunath Marlabeeti" <[email protected]> 

19/05/2010 18:07 

  

  

 

To

<[email protected]> 

cc

	
Subject

Indication with OperationContext Object failed  (in Pegasus 2.9.1)



  

  

  

 

		





Hi, 

I have written a simple indication provider it sends the indications to java client. 
While execution I observed one thing that in the below function if I deliver the indication without context object then the indications are received by the java client. 
If I deliver with OperationContext object then indications are not received by the Java client. But my requirement is indications needs to send with OperationContext object. 
Here I am copying the function 

Here is the function call 
GenerateIndication(_handler,CIMName("CRM_Indication"),objBackInd,strObject,"1.1.1.1","1","1.1.1.1|1|1@"); 
//objBackInd is an indication object 

void GenerateIndication(IndicationResponseHandler *ptrObjHandler, const CIMName objMethodName,CIMInstance objBackInd,string &strObject,string IP,string ID,string operationID) 
{ 
   char buffer[32]; 
   sprintf(buffer, "%d", G_ui32NextUid++); 
   objBackInd.addProperty(CIMProperty ("IndicationIdentifier",String(buffer))); 
   char stringTime[MAX_CHARS]; 
   time_t currentTime=time(NULL); 
   sprintf(stringTime,"%ld",currentTime); 
   AddProperty("IndicationTime",stringTime,CMC_STRING,strObject); 
   CIMIndication cimIndication (objBackInd); 
   String filterString; 
   string temp; 

   Array <CIMObjectPath> subscriptionInstanceNames; 
   Array <CIMKeyBinding> subscriptionKeyBindings; 
   string filterConstruction="root/PG_InterOp:CIM_IndicationFilter.CreationClassName=\"CIM_IndicationFilter\",Name=\"Filter20"; 
   filterConstruction=filterConstruction+IP+ID+operationID+"\",SystemCreationClassName=\""; 
   filterString.append(filterConstruction.c_str()); 
   filterString.append (System::getSystemCreationClassName ()); 
   filterString.append ("\",SystemName=\""); 
   filterString.append (System::getFullyQualifiedHostName ()); 
   filterString.append ("\""); 
   subscriptionKeyBindings.append (CIMKeyBinding ("Filter",filterString, CIMKeyBinding::REFERENCE)); 
   temp = filterString.getCString(); 
   printf("\nfilterString  %s\n",temp.c_str()); 

   string HandlerConstruction="root/PG_InterOp:CIM_IndicationHandlerCIMXML.CreationClassName=\"CIM_IndicationHandlerCIMXML\",Name=\"Handler20"; 

   HandlerConstruction     =     HandlerConstruction     + IP +ID+operationID+"\",SystemCreationClassName=\""; 
               String handlerString; 
               handlerString.append(HandlerConstruction.c_str()); 
               handlerString.append (System::getSystemCreationClassName ()); 
               handlerString.append ("\",SystemName=\""); 
               handlerString.append (System::getFullyQualifiedHostName ()); 
               handlerString.append ("\""); 
               subscriptionKeyBindings.append (CIMKeyBinding ("Handler", handlerString, CIMKeyBinding::REFERENCE)); 
               temp=handlerString.getCString(); 
          printf("\nHandlerString  %s\n",temp.c_str()); 
             CIMObjectPath subscriptionPath ("", 
                   CIMNamespaceName ("root/PG_InterOp"), 
                   CIMName ("CIM_IndicationSubscription"), 
                   subscriptionKeyBindings); 
                           subscriptionInstanceNames.append (subscriptionPath); 

         OperationContext context; 
               context.insert (SubscriptionInstanceNamesContainer 
                   (subscriptionInstanceNames)); 
                   objBackInd.addProperty 
                                       (CIMProperty ("IpAddress",String(IP.c_str()))); 
                                       objBackInd.addProperty 
                                       (CIMProperty ("OperationId",String(operationID.c_str()))); 
                                       objBackInd.addProperty 
                                       (CIMProperty ("Uid",String(ID.c_str()))); 
//with Context object indications are not getting received by JAVA clien without Context java client is reciving indication 

   //ptrObjHandler->deliver (objBackInd);     
   ptrObjHandler->deliver (context, objBackInd); 
} 

Please can anyone correct me where exactly I am doing wrong. 

Thanks, 
Manjunath.M
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.