Configuring WebServices DCA

Hi

As per BAM Admin Guide, to configure webservices DCA and to generate Client they advised to use wsdl`s located at Optimize_directory\controller\webapps\root\wsdl.

Have any of you used this wsdls and generated client? Do we need glue to run this client? Cant we do that without using GLUE.

Please explain me the steps that we have to use, to generate the client and to run the client.

I created Web service connectors using those WSDL but when i try to run them they are referring to glue like “http://localhost:12005/glue/WSOperationalDataCollector” in the address attribute.

Please guide me in this.

Hi Ravindran,
First of all the WebService DCA is a service which runs on a glue server which is completely internal to Optimize.
Secondly you dont need to install or configure anything related to glue.

The connectors that you have created sends SOAP messages to Optimize WebService DCA and as this DCA is running on top of glue, we have references to glue in the connectors.

I have used this WSDL’s and had no problems.
But rather than using the WSDL’s from “Optimize_directory\controller\webapps\root\wsdl” directory…I would suggest you to get the WSDL from
http://localhost:12005/glue/WSOperationalDataCollector.wsdl” by typing this URL in Internet Explorer. Do the same for WSProcessDataCollector.

Then create connectors using the WSDL’s and wala u are reading to use the WebService DCA…

If u have any problems regarding this then feel free to post them here along with Stack Traces if possible.

Regards,
Ramnish.

Hi Ramnish
I followed the procedure said by u and created the connectors. When I try to run the addMontiorDescription I am getting error which I have attached as a file for u`r reference

Ramnish, what Should be the value to the attributes of addMonitorDescription like moClassAttributeName,managedObjectClass. Can you please give me some detail on this?

Error_File
error.txt (2.6 k)

Hi Ramnish

Here are he details of the error getting while we tried to execute addMonitorDescription.

Our approach till this error:

  1. We have created web service connectors using, [url=“http://10.200.208.124:12005/glue/WSOperationalDataCollector.wsdl”]http://10.200.208.124:12005/glue/WSOperationalDataCollector.wsdl[/url] and [url=“http://10.200.208.124:12005/glue/WSProcessDataCollector.wsdl”]http://10.200.208.124:12005/glue/WSProcessDataCollector.wsdl[/url].

  2. When we tried to execute the addMonitorDescription to add monitor description; we got the SOAP fault message.
    SOAP Fault message details:

SOAP-FAULT/faultcode: soap:Server
SOAP-FAULT/faultstring: java.io.IOException: no argument constructor is missing. java.lang.InstantiationException: com.wm.optimize.webservicedca.operational.NVPair

soapResponseData: attached to this mail.

Ramnish, We need to configure this by this weekend. Can you please help me in this.

SoapResponse
soapresponse.xml (2.4 k)

Hi Ravindran,
The problem is due to no proper input to the “addMonitorDescription” call.

Now, for moClassAttributeName and managedObjectClass input u can provide absolutely anything. This parameters will be useful while configuring rules and Data Filters. In our case we used Process Name as managedObjectClass and Process atrribute (i.e. KPI we need to monitor) as moClassAttributeName.

I am attaching a sample call to the “addMonitorDescription”. The parameters in this sample are the mandatory ones and make sure the other parameters are assigned Null Values. Also try to give inputs in some logical grouping so that you can classify the monitors that you are creating.
Hope this helps you. If you still have any doubts try pasting the inputs that you are supplying.

Regards,
Ramnish.

Sample Input

addMonitorDescription-49366.zip (23 KB)

Hi Ramnish

Thanks a lot for ur help. Using ur input I created monitor using AddMonitorDescription and I also pushed some data into that monitor using pushData method. This is successful when I done it from my the Central Host where the controller is running.

But When I try to push the data into that monitor from the remote host where the satellite alone is running which has communication with the Controller thru the port 12501, I am getting the error as below:

SOAP-FAULT
fault-code: soap:Server
fault-String: ReceivedPOReceive_Notification.PO_PROCESSING.busines.process.

detail
unknown-id:
detailmessage: ReceivedPOReceive_Notification.PO_PROCESSING.busines.process.

I don`t know why I am not able to push the data from the remote host to the controller. Can you please help me in this.

We have a business process running in two different machines where order is placed from one end to another and another end sends an acknowledgment to the order received. We planned to monitor this business process using WM Optimize. We planned to have a controller + satellite in a central host and only satellites on the two remote machine where the actual business process is running.

We have to create some monitors related to the current business process and monitor them. Currently we are able to put rules on the default system monitors like no.of.threads in Controller and satellite connection state.

Hi Ravindran,
Good to know that i was able to help you.

Now to your Question. Tell me whether you have deployed satellite with WebService DCA on it. If so did you tried pushing the data on that DCA directly??

I guess you have created the Monitor on the central host and are trying to call the “pushData” from remote host.

What i want to say is , if thats the case then you need to call “addMonitorDescription” again on the remote DCA and then try calling “pushData”. This will work. The reason is that the remote DCA doesnt know for which monitor you are pushing data. You need to create the monitors again for other Machine’s DCA. Dont worry that you will have multiple copies of same monitor then. At Controller they will be taken care of properly.

Now, there is no need of 3 satellite’s in your case.
At Central host you just keep the Controller and at the 2 machine’s where your Business Processes are running, place 1 satellite each. Configure each satellite to talk to controller. This way you will have proper monitoring in place and at the same time you will be able to decrease memory load for the central host.

As far as Rules are concerned, once you create all the required monitors, you can place any rule on them.

Lastly i forgot to tell you something last time.
During call to “addMonitorDescription” , give “category” as ‘process’ for creating Business Monitors and give any other parameter for System Monitors.

Hope all this helps you.
Dont forget to post messages when any of the suggestions helps you.

Regards,
Ramnish.

Hi Ramnish

Your guessing is correct. I created the monitor from the Controller and I tried to push the data from the remote host.

As u said,from remote host I created the monitor<using> with same input (what I used in creation of monitor at Controller end) and used pushData to put the data into the monitor now. Its working fine now.

But i have multiple monitors at controller side. how can i remove the monitor created from the Controller Host. Should I get into DB and delete it? Any Suggestions?

Hi Ravindran,
Good to know again that my guessing was right.

As of now, the webservice do not provide any means of removing the Monitors. But there is an automatic provisioning for it. You see if you don’t use a monitor for a while (i.e. do not push any data) then the monitor gets disabled automatically. Now there is a catch here; if you want to enable the monitor again then you need to run “addMonitorDescription” again with same inputs as previous time and then start pushing data into it.

As of now if you really want to remove the monitors then yes you have to go to DB and remove them manually. But i would say that this is not a good thing to do. Because these monitors have referencial integrity in place so it might cause some other problems.

I hope this answers your query. Let me know if this helps.

Regards,
Ramnish.

Hi,

To remove the Monitor, have a look at Fix8 from TS. It requires the controller to be restarted, to remove monitor from it.

It is basically a stored procedure that removes the monitor from different places.

One Question Ramnish:
We have this issue about Monitors being disabled. Is there a specific timelimit it waits before the Monitor gets disabled?

Hi Chirag,
Thanx for letting us know about Fix8, but is it available on advantage site or we have to explicitly ask for it?? Or is it a part of the Optimize Service Pack 1?? Do let us know…

Well as for your question, i havent actually counted the time after which the monitors get disabled, But normally they used to get disabled if no data was pushed into it for a couple of 5 minute intervals. I will try to find the exact time and will let you know here…

Thanx and Regards,
Ramnish.

Hi Ramnish

As u said when we add the business monitors we have to give the category as “process”, but Whatever monitor we are adding to the controller as “process” is also displayed under the System tab. Why?

What is the procedure to add the business processes.

Hi Ramnish

Y`day evening I pushed some data to the monitor and went away. Today morning When I checked the monitor, no data is there.

But when I checked the data for the default monitors like No of threads used by the controller it is showing even the last week`s data.

As u said in u`r last post, if we have not pushed data to a custom monitor for a couple of 5 minute intervals, Do we loose the old data. Pls clarify me on this.

Hi Ravindran,
First of all the fact that your monitors are getting added to System Tab means that the monitors you have created are not treated as Business Monitors but System Monitors. To make sure that you create only business monitors and not system monitors , try to give the “patternDescriptor” inputs the way i have given. See your business monitors must belong to business process. The procedure for adding Business Process and associating Business Monitors to respective Processes is pretty self explanatory in BAMAdminGuide under the topic “Identifying Processes to Monitor”.

Now for your second question, the monitors never loose old data. If we dont push data for a couple of 5 min intervals then they just get disabled but never loose data. If you click on the monitor and specify proper Date and Time range then you can see old data. If you are not then there might be some other problem. Try to see the Error Logs for messages when you click on any Monitor for their data. Tell me what exactly it is showing in the error logs and also on the Console Screen.

If you still have doubts then try to paste the Console Screens here.

Regards,
Ramnish.

Hi,

You will have to ask support for it. Their new fix also has an Oracle JOB that will delete readings older then specified number of days. (I am not sure if they have developed something for any other database). We are using it to delete readings older then 90 days.

The fix is for Optimize SP1 as well as Manager 6.1.5.

Hi Ramnish

Eventhough I have given the input for the pattern descriptors as u said, the monitors are not added under business tab i.e. it is not considered as a Business monitor.

I have attached the snapshot of my input. And the result I received from addMonitorDescription is: process.business.PO_PROCESSING.Receive_Notification.ReceivedPO

What should be the problem still?


input.doc (55.3 k)

Hi Ravindran,
Now when you create System Monitors, you can see them in System Tab.
But when you create Business Monitors, you can’t directly see them in Business Tab. For you to see them , first you have to associate the monitors to a Business Process and then upload that process in Optimize and then you will be able to see them in Business Tab under the uploaded business process.

Now to associate the Business Monitors with Business Process, we have to create the XML file of Business Process and add Monitors in that XML. The instructions for this can be found in BAMAdminGuide under the topic “Identifying Processes to Monitor”.

I would like to suggest you something. While creating and adding business monitors to business process, try to give logical names to them and put them only in a place where necessary. Like for example a monitor is associated only with one step then define the monitor in that step only and not outside it and correspondingly gives name to it so that the monitor ID reflects the process name followed by step name and finally followed be Monitor Name.

I hope this helps you.

Regards,
Ramnish.

Hi Ramnish

Thanks a lot for u`r inputs. I am working over to add Business processes and Business monitors.

I want to know, Is it possible to add System monitors like Business monitors to monitor the WM Components? For example If I want to know the status of the Broker queue size, Broker Server & IS Server status?

How can I do that? The guide says in moClassAttributeName “For a WM Component, we can find the internal names of the documents in the components API doc” & for managedObjectClass “we can find the resource names in the components API doc”. What it means? Can u pls explain me?

Hi,
it is possible to monitor the WM Components by adding System Monitors.
But there is no need for you to create this Monitors as there are special DCA’s provided for Integration Servers and Broker Servers for this purpose. Also if you are using Manager v6.1.5 then you can combine them together in Optimize.

As for your question even we were not able to find the values of moClassAttributeName, managedObjectClass for Broker and Integration Servers. Even we were confused as to which API docs to refer to for these names.

If someone else knows about this then please educate us too.

Regards,
Ramnish.

Ramnish

Do you mean that we need Manager to monitor WM Components? Is it not possible to monitor WM Components using Optimize alone? If it is possible by Optimize alone, where do we have those special DCA`s?

Pls get back to me on this.

Regards
Ravi.