public override IRequestInfo StoreRequestInfo(SIF_Request request,
                                                      Query q,
                                                      IZone zone)
        {
            // validate that the userdata supplied with the query is serializable
            if (q.UserData != null)
            {
                Type userDataType = q.UserData.GetType();
                if (!userDataType.IsSerializable)
                {
                    throw new ArgumentException
                              ("Query.UserData contains " + userDataType.AssemblyQualifiedName +
                              " which is not serializable");
                }
            }

            try
            {
                RequestCacheFileEntry entry = new RequestCacheFileEntry(true);
                entry.SetObjectType(request.SIF_Query.SIF_QueryObject.ObjectName);
                entry.SetMessageId(request.MsgId);
                entry.SetUserData(q.UserData);
                Store(fFile, entry);
                return(entry);
            }
            catch (Exception thr)
            {
                throw new AdkException
                          ("Error writing to SIF_Request ID cache (MsgId: " + request.MsgId + ") " + thr,
                          zone, thr);
            }
        }
        public override IRequestInfo StoreRequestInfo(SIF_Request request,
                                                       Query q,
                                                       IZone zone)
        {
            // validate that the userdata supplied with the query is serializable
            if (q.UserData != null)
            {
                Type userDataType = q.UserData.GetType();
                if (!userDataType.IsSerializable)
                {
                    throw new ArgumentException
                        ("Query.UserData contains " + userDataType.AssemblyQualifiedName +
                          " which is not serializable");
                }
            }

            try
            {
                RequestCacheFileEntry entry = new RequestCacheFileEntry(true);
                entry.SetObjectType(request.SIF_Query.SIF_QueryObject.ObjectName);
                entry.SetMessageId(request.MsgId);
                entry.SetUserData(q.UserData);
                Store(fFile, entry);
                return entry;
            }
            catch (Exception thr)
            {
                throw new AdkException
                    ("Error writing to SIF_Request ID cache (MsgId: " + request.MsgId + ") " + thr,
                      zone, thr);
            }
        }