Showing results for 
Search instead for 
Do you mean 
Reply
Solved! Go to solution

SOA Client Performance

Hello all,

 

We are trying to load properties of model objects. Each call to load the property takes seconds or minutes. However, there can be hundreds of properties within a structure. Which means the SOA doesnt complete until a hundred or so minutes have passed. The logic is written so that it calls teamcenter multiple times to gather information.

 

I can provide more information but my general question/discussion is:

How long should each SOA call take?

Has anyone improved the speed to complete?

7 REPLIES
Solution
Solution
Accepted by topic author sfruehe
‎08-12-2016 11:53 AM

Re: SOA Client Performance

Are you using ObjectPropertyPolicy? It should be faster using this option.

Re: SOA Client Performance

I found some documentation about the objectpropertypolicy. We are not using it and I am preparing to make the required changes and perform some tests. Though, there are a couple options to use and configure this policy. What would you recommend as being the most efficient.

Re: SOA Client Performance

You did not mention the language you are using but with Java it would like something like this:

    protected void setObjectPolicy()
	{
		SessionService session = SessionService.getService(AppXSession.getConnection());
		ObjectPropertyPolicy policy = new ObjectPropertyPolicy();
		policy.addType("ItemRevision", new String[]{"owning_user"});
		policy.addType("Zip", new String[]{"owning_user"});
		session.setObjectPropertyPolicy(policy);
	}

With Java I would try the distribute the number of objects in smaller chunks and run them in separate threads to increase the performance.

Re: SOA Client Performance

We are using C#

The structure we are validating is basically a bill of materials. So there is a parent and hundreds of children associated to it, each containing specific item properties. For example, its effectivity date or quantity, op seq number, ect. The SOA code is designed to check all these properties to make sure the engineers are following the correct order of operations for each bom line revision. If they make a mistake, the SOA validation will let them know.

Now, this code is working and correctly sending back and forth information. We are just looking to make it run faster. The average time per validation check is about 1 hour. What would be the best strategy for using the object policy for such a case?

Re: SOA Client Performance

I just wanted to point out that one should not use something like type.getPropDesc() as it downloads all the properties of a type. With ObjectPropertyPolicy one can define the properties and this should be a little bit faster but I am afraid that this is not enough for a major performance increase.

Re: SOA Client Performance

Got this from GTAC:
If you don't use an ObjectPropertyPolicy then you will need to use method, strong.DatamanagementService.getProperties(ˆ). The disadvantage to this method is it requires two client/server requests. One to get the business object, and one to get the properties.

Re: SOA Client Performance

Awesome! After a day of writting code we were able to get an hour down to a minute in speed for the SOA speed.