Hello,
I have noticed and installed DRCP_1.25 branch from DBD::Oracle
repository. It seems to work fine but it's missing some essential
functionality in order to make it usefull. So I have made local
modifications (some of them are not essential) and all seems to work
fine here.
What I have done:
1. essential
- added ora_pool_class connection attribute that sets
OCI_ATTR_CONNECTION_CLASS on the obtained connection. It is essential
because without setting this attribute the pooled sessions are not
shared between processes. From oracle documentation:
> If no connection class is specified, the OCISessionPool’s name is
implicitly used
> as the connection class by all the requests using that
OCISessionPool, resulting in
> sharing only within a session pool, becoming equivalent to a plain
client-side
> session pooling application.
2.non-essential
- Added ora_pool_min, ora_pool_max, ora_pool_incr connections attributes
that are used to set corresponding values for OCISessionPoolCreate.
- Set default values for the above parameters to follow default values
of DBMS_CONNECTION_POOL package (principle of least surprise)
I have some questions:
1. Do you have suggestions for different names of attributes? I was
considering ora_drcp_class etc. but I am not sure what will be the best.
2. If my work is interesting for the further development of DBD::Oracle,
whom I should send a patch?
Finally, if this work is accepted I will add proper documentation for
the new attributes.
Best regards
luben karavelov