[
https://jira.jboss.org/jira/browse/JBESB-1675?page=com.atlassian.jira.plu...
]
Kevin Conner commented on JBESB-1675:
-------------------------------------
The following is a breakdown of a single invocation of unregister EPR. The interesting
thing to note from this is the behaviour of the findServiceBindings call, especially the
third invocation into jUDDI.
The third invocation retrieves the details of the BUSINESS object from the registry and
this appears to include the *details of every service in the registry*. So each request
into scout, to obtain the service binding, appears to retrieve everything.
I am still investigating how to address this but it is easy to see why scout/jUDDI is
running slowly.
Obtain the category classification and model information
ClassificationScheme cScheme = bqm.findClassificationSchemeByName(findQualifiers,
"org.jboss.soa.esb.:category");
FindTModelFunction.execute(RegistryObject) line: 165
sql is: SELECT M.TMODEL_KEY,M.LAST_UPDATE,M.NAME,M.DELETED FROM
TMODEL M WHERE M.DELETED IS NULL AND M.NAME = ? ORDER BY M.NAME DESC,M.LAST_UPDATE DESC
FindTModelFunction.execute(RegistryObject) line: 182
sql is: SELECT
AUTHORIZED_NAME,OPERATOR,NAME,LANG_CODE,OVERVIEW_URL,DELETED FROM TMODEL WHERE
TMODEL_KEY=? AND DELETED IS NULL
Find the service in the registry
BulkResponse response = bqm.findServices(null, findQualifiers, namePatterns,
classifications, null);
FindServiceFunction.execute(RegistryObject) line: 181
sql is: SELECT S.SERVICE_KEY,S.LAST_UPDATE FROM BUSINESS_SERVICE
S,SERVICE_CATEGORY C WHERE C.SERVICE_KEY = S.SERVICE_KEY AND ((C.TMODEL_KEY_REF = ? AND
C.KEY_VALUE = ?)) ORDER BY S.LAST_UPDATE DESC
sql is: SELECT S.SERVICE_KEY,S.LAST_UPDATE,N.NAME FROM
BUSINESS_SERVICE S,SERVICE_NAME N WHERE N.SERVICE_KEY = S.SERVICE_KEY AND ((UPPER(NAME) =
?)) AND S.SERVICE_KEY IN (?,?,?,?,?,?,?,?) ORDER BY N.NAME DESC,S.LAST_UPDATE DESC
FindServiceFunction.execute(RegistryObject) line: 198
sql is: SELECT BUSINESS_KEY FROM BUSINESS_SERVICE WHERE
SERVICE_KEY=?
sql is: SELECT LANG_CODE,NAME, SERVICE_NAME_ID FROM SERVICE_NAME
WHERE SERVICE_KEY=? ORDER BY SERVICE_NAME_ID
Find the service bindings (the section within chevrons are repeated multiple times)
BulkResponse bulkResponse =
bqm.findServiceBindings(service.getKey(),findQualifiers,null,null);
BusinessQueryManagerImpl.findServiceBindings(Key, Collection, Collection,
Collection) line: 576
FindBindingFunction.execute(RegistryObject) line: 156
sql is: SELECT B.BINDING_KEY,B.LAST_UPDATE FROM
BINDING_TEMPLATE B WHERE B.SERVICE_KEY = ? ORDER BY B.LAST_UPDATE DESC
FindBindingFunction.execute(RegistryObject) line: 173
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sql is: SELECT
SERVICE_KEY,ACCESS_POINT_TYPE,ACCESS_POINT_URL,HOSTING_REDIRECTOR FROM BINDING_TEMPLATE
WHERE BINDING_KEY=?
sql is: SELECT LANG_CODE,DESCR, BINDING_DESCR_ID FROM
BINDING_DESCR WHERE BINDING_KEY=? ORDER BY BINDING_DESCR_ID
sql is: SELECT TMODEL_KEY_REF,KEY_NAME,KEY_VALUE,
CATEGORY_ID FROM BINDING_CATEGORY WHERE BINDING_KEY=? ORDER BY CATEGORY_ID
sql is: SELECT TMODEL_KEY,OVERVIEW_URL,INSTANCE_PARMS,
TMODEL_INSTANCE_INFO_ID FROM TMODEL_INSTANCE_INFO WHERE BINDING_KEY=? ORDER BY
TMODEL_INSTANCE_INFO_ID
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
BusinessQueryManagerImpl.getRegistryObject(String, String) line: 746
GetServiceDetailFunction.execute(RegistryObject) line: 71
sql is: SELECT BUSINESS_KEY FROM BUSINESS_SERVICE WHERE
SERVICE_KEY=?
GetServiceDetailFunction.execute(RegistryObject) line: 82
sql is: SELECT BUSINESS_KEY FROM BUSINESS_SERVICE WHERE
SERVICE_KEY=?
sql is: SELECT LANG_CODE,NAME, SERVICE_NAME_ID FROM
SERVICE_NAME WHERE SERVICE_KEY=? ORDER BY SERVICE_NAME_ID
sql is: SELECT LANG_CODE,DESCR, SERVICE_DESCR_ID FROM
SERVICE_DESCR WHERE SERVICE_KEY=? ORDER BY SERVICE_DESCR_ID
sql is: SELECT TMODEL_KEY_REF,KEY_NAME,KEY_VALUE,
CATEGORY_ID FROM SERVICE_CATEGORY WHERE SERVICE_KEY=? ORDER BY CATEGORY_ID
sql is: SELECT
BINDING_KEY,ACCESS_POINT_TYPE,ACCESS_POINT_URL,HOSTING_REDIRECTOR FROM BINDING_TEMPLATE
WHERE SERVICE_KEY=?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sql is: SELECT
SERVICE_KEY,ACCESS_POINT_TYPE,ACCESS_POINT_URL,HOSTING_REDIRECTOR FROM BINDING_TEMPLATE
WHERE BINDING_KEY=?
sql is: SELECT LANG_CODE,DESCR, BINDING_DESCR_ID FROM
BINDING_DESCR WHERE BINDING_KEY=? ORDER BY BINDING_DESCR_ID
sql is: SELECT TMODEL_KEY_REF,KEY_NAME,KEY_VALUE,
CATEGORY_ID FROM BINDING_CATEGORY WHERE BINDING_KEY=? ORDER BY CATEGORY_ID
sql is: SELECT TMODEL_KEY,OVERVIEW_URL,INSTANCE_PARMS,
TMODEL_INSTANCE_INFO_ID FROM TMODEL_INSTANCE_INFO WHERE BINDING_KEY=? ORDER BY
TMODEL_INSTANCE_INFO_ID
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
BusinessQueryManagerImpl.getRegistryObject(String, String) line: 753
GetBusinessDetailFunction.execute(RegistryObject) line: 70
sql is: SELECT AUTHORIZED_NAME,OPERATOR FROM
BUSINESS_ENTITY WHERE BUSINESS_KEY=?
GetBusinessDetailFunction.execute(RegistryObject) line: 81
sql is: SELECT AUTHORIZED_NAME,OPERATOR FROM
BUSINESS_ENTITY WHERE BUSINESS_KEY=?
sql is: SELECT LANG_CODE,NAME, BUSINESS_NAME_ID FROM
BUSINESS_NAME WHERE BUSINESS_KEY=? ORDER BY BUSINESS_NAME_ID
sql is: SELECT LANG_CODE,DESCR, BUSINESS_DESCR_ID FROM
BUSINESS_DESCR WHERE BUSINESS_KEY=? ORDER BY BUSINESS_DESCR_ID
sql is: SELECT TMODEL_KEY_REF,KEY_NAME,KEY_VALUE,
IDENTIFIER_ID FROM BUSINESS_IDENTIFIER WHERE BUSINESS_KEY=? ORDER BY IDENTIFIER_ID
sql is: SELECT TMODEL_KEY_REF,KEY_NAME,KEY_VALUE,
CATEGORY_ID FROM BUSINESS_CATEGORY WHERE BUSINESS_KEY=? ORDER BY CATEGORY_ID
sql is: SELECT USE_TYPE,URL, DISCOVERY_URL_ID FROM
DISCOVERY_URL WHERE BUSINESS_KEY=? ORDER BY DISCOVERY_URL_ID
sql is: SELECT USE_TYPE,PERSON_NAME, CONTACT_ID FROM
CONTACT WHERE BUSINESS_KEY=? ORDER BY CONTACT_ID
sql is: SELECT USE_TYPE,PHONE_NUMBER, PHONE_ID FROM PHONE
WHERE BUSINESS_KEY=? AND CONTACT_ID=? ORDER BY PHONE_ID
sql is: SELECT USE_TYPE,EMAIL_ADDRESS, EMAIL_ID FROM EMAIL
WHERE BUSINESS_KEY=? AND CONTACT_ID=? ORDER BY EMAIL_ID
sql is: SELECT USE_TYPE,SORT_CODE,TMODEL_KEY, ADDRESS_ID
FROM ADDRESS WHERE BUSINESS_KEY=? AND CONTACT_ID=? ORDER BY ADDRESS_ID
sql is: SELECT LINE,KEY_NAME,KEY_VALUE, ADDRESS_LINE_ID
FROM ADDRESS_LINE WHERE BUSINESS_KEY=? AND CONTACT_ID=? AND ADDRESS_ID=? ORDER BY
ADDRESS_LINE_ID
sql is: SELECT SERVICE_KEY FROM BUSINESS_SERVICE WHERE
BUSINESS_KEY=?
The following is repeated for each service (8 times)
sql is: SELECT BUSINESS_KEY FROM BUSINESS_SERVICE WHERE
SERVICE_KEY=?
sql is: SELECT LANG_CODE,NAME, SERVICE_NAME_ID FROM
SERVICE_NAME WHERE SERVICE_KEY=? ORDER BY SERVICE_NAME_ID
sql is: SELECT LANG_CODE,DESCR, SERVICE_DESCR_ID FROM
SERVICE_DESCR WHERE SERVICE_KEY=? ORDER BY SERVICE_DESCR_ID
sql is: SELECT TMODEL_KEY_REF,KEY_NAME,KEY_VALUE,
CATEGORY_ID FROM SERVICE_CATEGORY WHERE SERVICE_KEY=? ORDER BY CATEGORY_ID
sql is: SELECT
BINDING_KEY,ACCESS_POINT_TYPE,ACCESS_POINT_URL,HOSTING_REDIRECTOR FROM BINDING_TEMPLATE
WHERE SERVICE_KEY=?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
sql is: SELECT
SERVICE_KEY,ACCESS_POINT_TYPE,ACCESS_POINT_URL,HOSTING_REDIRECTOR FROM BINDING_TEMPLATE
WHERE BINDING_KEY=?
sql is: SELECT LANG_CODE,DESCR, BINDING_DESCR_ID FROM
BINDING_DESCR WHERE BINDING_KEY=? ORDER BY BINDING_DESCR_ID
sql is: SELECT TMODEL_KEY_REF,KEY_NAME,KEY_VALUE,
CATEGORY_ID FROM BINDING_CATEGORY WHERE BINDING_KEY=? ORDER BY CATEGORY_ID
sql is: SELECT TMODEL_KEY,OVERVIEW_URL,INSTANCE_PARMS,
TMODEL_INSTANCE_INFO_ID FROM TMODEL_INSTANCE_INFO WHERE BINDING_KEY=? ORDER BY
TMODEL_INSTANCE_INFO_ID
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Finally, delete the bindings
blm.deleteServiceBindings(serviceBindingKeys);
BusinessLifeCycleManagerImpl.executeOperation(Object, String) line: 527
GetAuthTokenFunction.execute(RegistryObject) line: 79
sql is: SELECT
PUBLISHER_NAME,EMAIL_ADDRESS,IS_ADMIN,IS_ENABLED,MAX_BUSINESSES,MAX_SERVICES_PER_BUSINESS,MAX_BINDINGS_PER_SERVICE,MAX_TMODELS
FROM PUBLISHER WHERE PUBLISHER_ID=?
GetAuthTokenFunction.execute(RegistryObject) line: 88
sql is: INSERT INTO AUTH_TOKEN
(AUTH_TOKEN,PUBLISHER_ID,PUBLISHER_NAME,CREATED,LAST_USED,NUMBER_OF_USES,TOKEN_STATE)
VALUES (?,?,?,?,?,0,1)
BusinessLifeCycleManagerImpl.executeOperation(Object, String) line: 557
DeleteBindingFunction(AbstractFunction).getPublisher(AuthInfo,
DataStore) line: 73
sql is: SELECT PUBLISHER_ID,PUBLISHER_NAME FROM AUTH_TOKEN
WHERE AUTH_TOKEN=?
DeleteBindingFunction(AbstractFunction).getPublisher(AuthInfo,
DataStore) line: 77
sql is: SELECT TOKEN_STATE FROM AUTH_TOKEN WHERE
AUTH_TOKEN=?
sql is: SELECT LAST_USED FROM AUTH_TOKEN WHERE
AUTH_TOKEN=?
DeleteBindingFunction(AbstractFunction).getPublisher(AuthInfo,
DataStore) line: 82
sql is: UPDATE AUTH_TOKEN SET
LAST_USED=?,NUMBER_OF_USES=NUMBER_OF_USES+1 WHERE AUTH_TOKEN=?
DeleteBindingFunction.execute(RegistryObject) line: 85
sql is: SELECT
SERVICE_KEY,ACCESS_POINT_TYPE,ACCESS_POINT_URL,HOSTING_REDIRECTOR FROM BINDING_TEMPLATE
WHERE BINDING_KEY=?
DeleteBindingFunction.execute(RegistryObject) line: 93
sql is: SELECT * FROM BUSINESS_ENTITY e, BUSINESS_SERVICE
s, BINDING_TEMPLATE t WHERE s.SERVICE_KEY = t.SERVICE_KEY AND e.BUSINESS_KEY =
s.BUSINESS_KEY AND t.BINDING_KEY=? AND e.PUBLISHER_ID=?
DeleteBindingFunction.execute(RegistryObject) line: 103
sql is: DELETE FROM BINDING_DESCR WHERE BINDING_KEY=?
sql is: DELETE FROM BINDING_CATEGORY WHERE BINDING_KEY=?
sql is: DELETE FROM TMODEL_INSTANCE_INFO_DESCR WHERE
BINDING_KEY=?
sql is: DELETE FROM INSTANCE_DETAILS_DOC_DESCR WHERE
BINDING_KEY=?
sql is: DELETE FROM INSTANCE_DETAILS_DESCR WHERE
BINDING_KEY=?
sql is: DELETE FROM TMODEL_INSTANCE_INFO WHERE
BINDING_KEY=?
sql is: DELETE FROM BINDING_TEMPLATE WHERE BINDING_KEY=?
121 statements for one EPR
Possible Juddi Performance problems
-----------------------------------
Key: JBESB-1675
URL:
https://jira.jboss.org/jira/browse/JBESB-1675
Project: JBoss ESB
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Registry and Repository
Affects Versions: 4.2.1
Reporter: Tom Cunningham
Assignee: Kevin Conner
Fix For: 4.4
Attachments: esb-util-cache-src.jar, esb-util-cache.sar, server.rar
From forum post :
We are not using juddi directly, I do not know if it is a core required component of ESB.
After a few runs, we are having performance problems that seems to be related to juddi. It
happens only on shutdow/startup operations. The time spent to create the auth tokens
(sorry, what are they used for anyway??) are taking longer and longer. JBoss takes over 2
minutes (in a 8 processor machine??) just to delete the template bindings for juddi on the
shutdown process.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira