You should be able to make calls on the 'secondary' cache provided the data has been loaded into the memory of the secondary cache. If not, and it attempts to make a remote tcp call for this data, it will fail.
Thanks for the response. Actually I have figured out my problem. My TCP server keep on changing the cache (every one minute) and since I'm using INVALIDATION_ASYNC, the node on the Secondary cache got evicted; hence when I call get() from the secnondary cache it will go to the cache loader to get the value instead of getting the value locally. Fixing the TCP server has fixed my problem.