Problem: Product Name: VisiBroker for Java Product Version: 6.5 Product Component: Core ORB Platform/OS Version: all JDK/Compiler Version: JDK 1.4.2 and above BES 6.5 - All Platforms: Usage on enableKeyId and keyIdCacheMax properties for VisiBroker Java application. Resolution: Note that these properties are only applicable to VisiBroker Java and not VisiBroker CPP. enableKeyId property allows the use of key id optimization in the client requests. The purpose of the key id optimization is to shorten the length of GIOP request messages by not sending the object key in the request message with every request. The first request from the client to server contains the original object key (refer to the below GIOP trace): 00000005,2/9/06 1:12 PM,143.186.138.113,00002380,VBJ-Application,VBJ ThreadPool Worker id=0 se=iiop_tp scm=iiop_tp,DEBUG,****** Received Message ***** 47 49 4F 50 01 02 00 00 00 00 00 90 00 00 00 02 GIOP............ 03 00 00 00 00 00 00 00 00 00 00 29 00 50 4D 43 ...........).PMC 00 00 00 04 00 00 00 10 2F 74 65 73 74 5F 6B 65 ......../test_ke 79 69 64 5F 70 6F 61 00 00 00 00 09 54 65 73 74 yid_poa.....Test 4B 65 79 49 64 00 00 00 00 00 00 0B 74 77 6F 57 KeyId.......twoW 61 79 46 75 6E 63 00 00 00 00 00 03 56 49 53 03 ayFunc......VIS. 00 00 00 00 00 00 00 01 00 00 00 0C 00 00 00 00 ................ 00 01 00 01 00 01 01 09 56 49 53 06 00 00 00 05 ........VIS..... 00 05 07 01 7F 00 00 00 00 00 00 08 43 41 43 48 ............CACH 45 2D 31 00 00 00 00 00 00 00 00 01 E-1......... and the subsequent requests will use the 'key id' instead (refer to the below GIOP trace) 00000008,2/9/06 1:12 PM,143.186.138.113,00002380,VBJ-Application,VBJ ThreadPool Worker id=1 se=iiop_tp scm=iiop_tp,DEBUG,****** Received Message ***** 47 49 4F 50 01 02 00 00 00 00 00 48 00 00 00 04 GIOP.......H.... 03 00 00 00 00 00 00 01 00 00 00 0C 00 56 42 03 .............VB. 00 00 00 00 00 00 00 00 00 00 00 0B 74 77 6F 57 ............twoW 61 79 46 75 6E 63 00 68 00 00 00 00 00 00 00 00 ayFunc.h........ 00 00 00 08 43 41 43 48 45 2D 32 00 00 00 00 00 ....CACHE-2..... 00 00 00 02 keyIdCacheMax property: there is a typical question on what happens when this value is exceeded. When this value is exceeded, the internal mapping table is discarded and a new table re-created. With this new table, key id optimization will continue. Hence you do not see the usage of the original object key when the value of keyIdCacheMax is exceeded in your application. More information on the history of these properties: "keyId" features are removed since VBC45. Hence these properties are not available in VBC 6.5. Although these properties are still present in VBJ 6.5, customers are advised not to enable the "keyId" feature due to side effects such as higher CPU usage and memory leaks. From VBJ 60 onwards, key id optimization is disabled by default. Old KB# 26346
↧