The problem I am seeing is that the snapshot upon the kernel calling subscribe on a dataProviders (when the first client subscribes to an item the kernel doesn't have) doesn't always seem to propagate down to the client even though the kernel is registering incoming snapshot and endOfSnapshots in the log files. However the second call to the kernel from a different client for the same item will always get the proper data.

I have a set of Command and Data Adapters for a set of items types. For each Item type the client (GWT/JS) subscribes to group key on command adapter in COMMAND, and sets up the second level data adapter for the specific item data adapter. (I have tried both with and with out setting the requested snapshot = "yes" on the subscription and it doesn't seem to change the behavior)

Each Command and Data Adapter for each item type is a child of a the same parent CommandAdapter and SubDataAdapter and only implements methods to get different data. The code is 90% the excact same for all item types at the java adapter side.

On the Java Command Adapter for an item group upon receiving a subscription retrieves the item group and items. and sends a smartUpdate(handle, update, false) for each item key containing the ADD command, and the itemKey.

The Java Data Adapter for a specific item upon receiving a subscription from the kernel gets the retrieves the full snapshot form an external source, and sends smartUpdate(handle, message.getMsgMap(), true) and a smartEndOfSnapshot(handle) before exiting.

We have about 3 item groups and 2 of the groups regularly get the correct information to the client on a empty kernel, but the 3 item group which is always the last to log the info in the server log is always missing information.

A list of log lines for a specific item group and item. Which looks identical to the itemGroups/items which do make it to the client.

INCOMING DATA for itemGroup1--> {command=ADD, key=itemGroup1:item1}
Requested item names: [itemGroup1:item1]
Max allowed frequency for user null and item itemGroup1:item1
Setting min update distance for item itemGroup1:item1: requested = 1000; allowed = 0; used = 1000 ms
Max allowed buffer size for user null and item itemGroup1:item1 = 0
Setting buffer size for item itemGroup1:item1: requested = 1; allowed = 0; used = 1
Subscribing to item itemGroup1:item1 on MyAdapterSet.ItemType1_DataAdapter
INCOMING SNAPSOHT for itemGroup1:item1 --> {data data data}