There was a bit of a discussion about the relationship between SPDY/H2 and the synthesized HTTP/1.x requests on the chat the other day with respect to getting access to logging connection-oriented data from the synthesized request.

I'm working through similar issues with TS-3578 with respect to session hooks, SPDY/H2 and synthesized HTTP/1.x requests. I'm copying a comment I made on that bug here to spark discussion. I have my opinion, but I'd like to understand the communities expectations for SSN hooks.

The rearrangement in TS-3578 has worked well for my needs with the tcpinfo plugin. For SSN_CLOSE, the hook gets triggered for both the HttpClientSession and the SpdyClientSession or Http2ClientSession. We only log for the Spdy/Http2 Client session since that is the only session with access to the netvc.

For SSN_START, the hook is only called on the HttpClientSession, so no logging is performed in the Http2/Spdy case since the HttpClientSession does not have access to the netvc.

This brings up a broader issue of when should the session start and session close hooks be called in the Http2/Spdy case.
  * Only on the Http2/Spdy client sessions
* On both the Http2/Spdy and HttpClientSessions. In the case of the HttpClientSession, this would be with the same frequency as the TXN_START and TXN_CLOSE hooks. * Only on the HttpClientSession. In this case we would need to figure out how to get access to the netvc from the PluginVC. Plus the SSN hooks would not correspond to the real start and end of the user agent network connection.

At this point, I prefer the option of calling the SSN hooks only on the Http2/Spdy client sessions. But I need feedback. Do people rely on SSN hooks having access to transaction data?

Of course in the case of a native HTTP/1.x connection, nothing should change. The SSN and TXN hooks will be invoked against the HttpClientSession.

Thanks,
Susan

Reply via email to