Do you have any idea what could be causing that and will the OneConnect maintain persistence whether or not they send the persistence cookie?
Persistence will be set if it is not sent.
To say that OneConnect might solve your problem would be a total assumption based on the problem description. I would suggest a deeper investigation to determine if the connection that is not providing any persistence information is actually a new connection that looks like an existing connection, or if it is truly losing / not providing its persistence information.
A header logging iRule might help (I would only advise using this in a limited capacity for logging). This should help you determine if an existing connect or new connection is not providing a cookie (Search for the unique Client IP and Port Combinations).
when HTTP_REQUEST {
set LogString "Client [IP::client_addr]:[TCP::client_port] -> [HTTP::host][HTTP::uri]"
log local0. "============================================="
log local0. "$LogString (request)"
foreach aHeader [HTTP::header names] {
log local0. "$aHeader: [HTTP::header value $aHeader]"
}
log local0. "============================================="
}
when HTTP_RESPONSE {
log local0. "============================================="
log local0. "$LogString (response) - status: [HTTP::status]"
foreach aHeader [HTTP::header names] {
log local0. "$aHeader: [HTTP::header value $aHeader]"
}
log local0. "============================================="
}