Subject | Re: Vulcan services engine info |
---|---|
Author | Roman Rokytskyy |
Post date | 2006-05-10T09:40:27Z |
> But there's one issue here (it has alredy been mentioned as well).No, the solution to this problem was already presented. The original
> Some information requests require a subsystem poll. Those are
> enumeration of databases/attachments/users. But there are other calls
> that require to call only one subsystem. A version information is a
> good example. Now imagine that SPB contains mixed enumeration and
> version requests, so both goes into fb_engine_info(). Should the
> Y-valve parse its input buffer and process requests differently? IMHO,
> it looks pretty outside its intelligence. But otherwise we'll get
> version info from all engine providers and I doubt this is what users
> expect to see.
fb_engine_info() call goes directly into the services provider. The
services provider splits the parts of the requests and processes them
separately.
When it meets the isc_spb_num_att, it looks up the configuration, gets
the list of the engines and calls the Y-valve few times with the SPB
that includes both isc_spb_num_att and
isc_spb_require_engine="engine8" for example.
The dispatcher sees that SPB contains isc_spb_require_engine="engine8"
and sends request only to the engine8 provider.
If the original SPB also contained isc_info_svc_version, this part of
th erequest is processed as usual.
Results of the processing of different parts of the request are
combined into the final response and returned back to Y-valve.
But I am more and more convinced that the whole concept of a provider
calling the Y-valve while processing the request that same through
that very Y-valve is bad and in the future it will produce more
problems than solve.
Roman