building high performance drivers for oracle database 11g: oci

32

Upload: trinhcong

Post on 01-Jan-2017

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Building High Performance Drivers For Oracle Database 11g: OCI

��

�������������� �� ������� ��� ���� �� ������������������������������������� �����

����������� ������

������������

Page 2: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ����������������������������������

�������������� �� ������� ��� ���� �� �����

�������������������������������� ����

��� �������� !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "��#���$%�&�#'���� !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "�

��� ������� ����������� !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "�(�����)���������������� ���� ������� ������������*����� !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +�� ����(����)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +�

,--�-�$#�%�#'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .�/$#$'�#'���##,����#( !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 0�

����������������������������!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1������ ������2���� ������������������-�����������������������!!!!!!!!!!!!!!!!!!!!! ���

�-,�$-�#'�(�$�,/,#�(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! �3���#��#'�4$-�$�%,( !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! �5�,6,�7��#'��/%� !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! �+�

$ �)�,8�����������/%����������� !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! �.�,6,�7��#'�97,-�,(�$#���,���#'�-,(7%�(!!!!!!!!!!!!!!!!!!!!! �.�

$ �)�������� !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! �:��$-$��,-�(,����#4,-(��#(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3;��-$#($����#���#�-�%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3���-$�%,�(,�7-,��%,� !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3��-,�,�4�#'��$�$�$(,�,4,#�( !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 33�

�����������$#�,�����!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 33�,#�<��<,#����$'#�(����$��-��7�,(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3"��$��#'�97,-=�-,(7%�(��#��,��%�,#� !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3.��-,�,-,���-�'-$//�#'�/��,%(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 30�

�2����)�,��� �������������������������> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 30��2����)�, � �������������������> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 30�(��������� �� �������������� ��� ����� �,8�����> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 30�(�������� �<������ ���������� �)<����>!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 30�(��������������<����?�������> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 31��2���������� ���������������> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 31��2���������������������������� ��> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 31�

�7�%��#'�=�7-������-�'-$/!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 31��#(�$#���%�,#�!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3:�7�'-$��#'��,��%�,#� !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3:�7�'-$��#'��,�(,-4,-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 5;���#�%7(��# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 5;�7(,�7%����#�,-(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 5��

Page 3: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ����������������������������������

Page 4: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ����������������������������������

�������������� �� ������� ��� ���� �� �����

�������������������������������� ����

��� ��!"�����

������� ������� ������������������������������� ������������������ �2�������� ������ ���@����������������������� � ��������������A�� ���B�������!#��A�� ���������-��)A������ ����,-%�����)���!�$��������������������� ���)A���)��������������)������ ������������ ��� ��� ��� ��������2 ���� ������������������� �������������� �����C���D!�������������������������������������� ��������������������� ��� �E������ �E2 ���� ���� ��������������� ���������������������� ����������������� �������A��������������� ��������������������� ��� �� �����A�������������)A����������������!���������������������� ������������������� ������������������������ �����?�)���������������������� ����������� ��� ���� ����� �������������!����������������������������������������� ����� ������������������A�2�������������������� ��� ����!��(������������������������ ������ ��� ���������������� ����������������� ���������������������!��2��� A���������� ������� ������������������� � �����������2���!��������������������������������������� ���� ���������������� ���������������$���� �����!�

�����#$�%��&��"��

����� )��� ������������������������� �� ���������� ������������,��� ������������!���� ����)�� �A����� �������� �����������������*�������������������������� ������!�@�� ����������������� ������� ����������������������� ������������ �����!��

���������������������

���������������� ��������� ���������������������������������������������� ���� �������������!����)���F����2���������� ������������������������)�� �� �� ��A�)������������)����������� ���������������2�!�����������������������������

����������������������� �������� ���������������������� ��� ������������ �����

����������������������������������!"���#����������������$�$�$� $%��$&��'&��(����

������� ������� ��������������������

����������� ������������������ �'��������

������ ���(����))����������������� ) ����

���)������*�� ���+�������,���*�� ������

��� ��-*������ ����. $�����-���,�#������

��������������� ���-*���-��������������-�

����� ������������ ��� ��� ��� ��������

' �))� �������������)����� �����"����

���� �����/�"�0,����������������������

���������������� ��������������������

� ��� �1���)�� �1' �))� ���� �����������

���� �������������,�

Page 5: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ��������������������������������2�

�������������������������������������������������������������� )���(���&���*�����

��������������������������������($%�����+�����������*� ��'�'& ,�($%�-�&��$&�� ����

���������������������������������&$���������������������� ��� �����*� ��'�'& ,�����

������&�.& �/0����

����1��� �" �������������1#23��4���

=���2����������������������������������������2��������������� ����?����� � ������2����������� ������������ ��)!�

�������������������������������������������������

���)���2������� ����������������������������������������A���������2��)������������)�)�� ��� ���� ������ �� ����������)!�=���������������������� ���8������ ���� ��������)�� �� ��� ������� �)��������)��������)����� ���������� ���� ������ ���)�� ��2��������� ����������!��������� (� ����������� ���������2��)������������)�������������������������� ���� ������ �� ����������)!������������������������������

�)5�������� (�����6����� ����" &'��'����� �����'����

�����

����������������������� (� �������� ������������������� ��� ������������ �����

�������������������������������������!"���#�������������$�$�$� $%��$&��'&��(����

�������������������������������������������������������������� )���(���&���*�����

�����������������������������������($%�����+��������*� ��'�'& ,�($%�-�&��$&�� ����

������������������������������������&$������������������� ��� �����*� ��'�'& ,����

���������������������������������������������������������� $����($������ �(������

���������������������������������������������������� $����($�����1�7���� �(������

��00�&�.& �/�

����1��� �" �������������1#23��4���

��

���)����������7����������� ������������A�)��������� ����)��������� ����������������������#"89!��� ������ ���� �������������������������������� (� ������!����������������������������� ���� ��� ���� �����!����� �����'������*������(���� ��'�������������������� ��������������������� ������ ���� ����������!������������ ��������������������� (��� �����'�#&������������ �����'��������������������������� ��������� ������ ���� ����������������� ���� �������!�������������� � �� ���������� ������������!�����)�������������������� ������ ���� ����������������� ���� �������A�)���2������ ������������ ������������������������������� ������������������������ �������C������� ������� ��� D����������������� (��� �����'�#&����������� ������� ���� ����������������� ���� �������!������� ���� ���������������������������� �������������*������ (������������� ������������������������� (� ������!

������ ����

���)�� �� ��� ������?��)������������������������ ���������� ������A�)���������������)����������������������������!"���#���������������*������������� ����� !�����2�������� �������������� ����)��� ����*�������� �������������������������������� ����� ���� ����������������� ������2����� ����!�

Page 6: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ��������������������������������3�

. � �#��$��&�

$���������� �� �������� ������A�2�� ������������?���� ��� ����� � �������

� ����������������!����� � �� ���)��������������� � ����������������������!����

� � ������� ��� ������������������ ������� ��� ������������A�����������������!�������

�����2�����8������A�)���2���������������������������� ���������������?�����

��� ������������ ������ )�����������������������A�������� ������ �������� ������

� � ������!�=��������������*��������������)�� �� � ��������� � �� ������!����

�����8����������2A�2�����������������8������������ �� ����������� ���

���G,--�-A��������� �������������)��������������������������� ��� ���� ������2���

������������!�

�� ������������������� �� �� ������������������� � ������A�����������������������

����������� ��!�������������A������ ������������������������������������������

�����8� ��������������������� �������������� ������������!����������� ������

2)�������� �������������� ��������������������� ��� ����������������

����������!�

��������2�����8������������ �������������������������� � ��������

�� & ��� ����

������ &������ & ����� ��

������&��-�:& ���1��� �� &�����.��� .�,(�������� & �&�����$ &�'�������� ��

������

�������������������������������������������������������������$ &�'�������� �����

�����������������������������������&$���������� ���������� ��� ����� ����� �����

������������������������������������1#23�77�7������,��&:����� ���&�� &��������

����������������������������������($%�����+���������&��$&�� ��*� ��'�'& ,�($%�����

�����������������������������������&$�������������������� ��� �����*� ��'�'& ,����

��������������2����������������������� � ����?������������������� ��!�

���

��������� +��-�#�$(�:����$&��� $��(�������$ ���� & � ��& �0�

�����������������(����&�;. ��;�$��&���$&��&:������ (0�

���3� �'��� (-�

��������� ������<�����)���$��� �������$ &�'�������� ��& ����� & ����� �0�

�������������������:& ������ (�����������$������� & �1��� �-�

���������������������((�$������� & �1��� ��

����

�������������������:& ������ (�������&�=������������ & �1��� ���

���������������������((�$����������1��� ��

���

�������,��������<��,���&:����� �-����1#23��4�& ����1#23�77�7�

��������������������

�����(����(�����<�����(����(��&��� ��� ����: &'���������� �

���

����&��(-�

��������������������&����������$(�;�*$�(;�&������:$ (��

����������������������77�7�����4��!�1��!�0�

����������������������#�>?�����7!���#��2��7�77�7�1��!����7@�7>�#���

����

�&$�������� +��&$������� ����)A���,����(.& ��(����(��

B�

�������)�::� ��&��& ������� & �'�((�6�����

����*��� )�:C5+ADE��

��()A�� �&�����+��

Page 7: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ��������������������������������4�

��(.$�����(����(��

��B�

����(�����������-�

����) �����

����(������������F#1��"�-�

������&$���� $��:�; & �<�����������F#1��"�G�;���

����) �����

����(������!�!�#�-�

������&$���� $��:�; & �<�����!�!�#�G�;���

����) �����

����(��������!�#�-�

������&$���� $��:�; & �<������!�#�G�;���

����) �����

����(�����77�7-�

������&$���� $��:�; & �<����77�7G�;���

����$:������ ���

����B�

��������&$����� & �������� ���8�����*�����������H� �&����

�������������������������� )�:����)A��($%�&:�� )�:�����,�����

��������&$���� $��:�; & �<�I0�(G�;��($%�&:�� )�:���� )�:���

����J�

����� (��

����B�

��������&$���� $��:�;��������� �G�;���������������

��������&$���� $��:�;���) ���&��*� ��������$ ����$�6�&(�$��$�:& '��$&�G�;���

����J�

�����*$��8���

����) �����

����(������4��!�1��!�-�

������&$���� $��:�; & �<�����4��!�1��!�G�;���

�����*$��8���

����) �����

����(������#���K��#��-�

������&$���� $��:�; & �<�����#���K��#G�;���

����) �����

����(��������#��-�

������&$���� $��:�; & �<�������#��G�;���

����) �����

����:�� �-�

����) �����

��J�

J�

���: $��� ,�� & ������$�6�'�� &(����

��������� ��-�'�����:& ������ (��������������$������ & ����� ������

L��:$����������� ����(����(�������� +��� ��������1#23�77�7���(����(���

�������������-�'�����:& ������ (�������&��&����������$������ & ����� ������

L��:$����������������(����(�������� +�������������1#23��4���(����(���

5#�#&��&�"���."����6�

����� ��������� ���������� �������������������������������������������2���� ���������� ����������� ��!�$�������� ����������������?������������������� ���� ����������������������������������2���������������������������������������!�� ������������� �����#(���)������������� ������ �������� �)��� ����!�/� �� ������)A�� �������������� �����������,��)����������� ���A�2�������������� ��)���8��� ��� )�����������������!��� �� ����������������)���������������A���?���� ������?�����#���������������)������>�0!7�#�72�3�#1��� ����� �������� ����!� ������!����������������� ����!� ����������������)����#����!>������ ��������� �����!����#����!>�����

Page 8: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ��������������������������������7�

�������A�����M�7����1�>����.& ����'$�������� ������8�!�(��������>�0!7�#�72�3�#1���������2��������� ��������!�"���#$���������%$�&�������'$

�������������� �������������?�������� ���())����*+ ���,)+���-���.,($

�7��������������8�����A������������������������� ����������2��;��(� �(<(� �� 0�*�'� �0�&'-8N58�(� �(;�;��(� �(<(� �� 0�*�'� �0�&'�(� �(;���& ����:�� ����8N58�

���������2�����8������������� ���������������������������� ������� �;� ;-������$/�����$#$�����$/'$())����0���� 1�. � ��.)����(2$�������:&�����������������������*����(��������������������������$�3��$�����������&��-�:& ���1��� �� &�����.��������� & �&�����$ &�'�������� ��������������������������������������������������������������������������&$��������3�� �����1#23���#1�"������������������������������($%�����+����&$��������������������(������(� ��'��������((.& ������������� �� ��������� ��������������1#23���#1�"����������������������������������&$�����(��(��(� ������� ����;� ;�����������������������������������������4���������� ��������������� �� ��������� ��������������1#23���#1�"�������������������������������� ���5�����(� ������� ���������((.& �����������������������������������������"���6������ ���������)/$7�$��$����8��$����-�$/)$�������� �� ����������-������������ ����������������������������������������� %$$$$$$$$)/$��3��$����8��$����-�$/)$���������������������������������3�� ��������$�$�$� $%����������$���$&������ ����������������������������������������������������������������������&������(� $�6�������������������������������������� �#�*������������(� ����&��(� ���������������������������������������������(�(($&����66$�6��� �'��� (-�&��$&�� ���������������������������������������������������������������������������+�������������������������������������������������������!"���#������������������������������'&��(���������0000��&�(&'��.& ��&������(�(($&�0000����&�.& ��&��(�(($&��(����������)/$�����9$��$����-�$/)$�������� �� ����������-���������� ��� ����������+�����!"���#���������&$�����1��� �" �������������1#23���#1�"�����#��������)���������������������,��)����������� �����)��������)�� ���)�� ��2�����������������������)������������������������������������!� ��C�����#(��������D��������2������,��)����������)���8!��$������������������8����������� ������ �������������(($&�����������A�2�������2��)�����������2�������������������������������������������8���� ����������)A��� �������������� ���������������A�)�����)��������������������(($&�O�6$��������!�������������������� ���������������������������)�� � � �� ��������8�������)����2�������(($&������������ ��!

��������������������������

����������F�����������������*�������������2����)���������������)������ ���!���������������F������?�����������������F��������

• � �� ����� ��� ��������)��� ���� ������

Page 9: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ��������������������������������8�

• �8������������ �������������������� � �� ���

• �8�������������� ���2�����������2����������������� � � �� ���

• �8����������������������2��������������������)�����A����������������

���� ����

��������������F����������������������������������������F������� ���?�)������������ ��������������� �������������?�2����������� �������A��� ��)������������� ��������������� �����������������F���!���������� ��������)���� ������)���������������)������� �� �����!��������������������������� ���)�������)����������������<����������� ��� ��H������� �2� ��A�����������������������������������C�D�� ���������������2� ?�������H�C��D����2���������������������� �������)������ �����E� ���H�C���D��� �� �������� � ��������������������H�����C��D���������� �������2��������������� �����������8���� �(9%������������������� ���������!���� ������2���������������������������������8�������!�$�����������������)�������������� ��)�����������������2������� � �� ������������ ������� ���� ��������������������� �� !������8�������2)������������������������������ ����)���������� ������2����������������2� ��������������� ����������� ��� ���� ������!�/���������� �������)�������������?������������������� �������� �����������������������!����������2���� �������������������!���� ����������������������������� �����������2���������������������������������(�����������!�������������������� ��?��2��������������������������������� ����� ��������������?��������������������(������������������������������������������ � �� ���������������2������������������ ����������������������������!���� ��� �����)�������������������������(��������������

• �������� ���� �������=������������������������������2��������!�����

���������C�D��)��������)�� �2��������� ��?�������������������������H�C��D�

���� ������������*��������H�����C���D����� �������� �� ���������� ���)����� ���

���2����� �����2���� )������������������!�

• � �������������(������������� ������2���-�������%���������������C-%�D�

,�����!���������� ������ �)��������2���)���� ����������-$����������!����

��������� ��A���)�� ���� � �������������������������������������������� ���

��������������������� �� ������������������������������� �����������

���������������� ��������� ������������)������������!�

• � ������������ ���(������������� ������2��������$�����������#������������

C�$#D�,�����!��@����$#�,������� ���������A�����(������������

�� ����������)�����������������������������������������������E���������

����� �����������)���2������������ � ������� ���� ����������� ������������A�

�� ��)�� ������������������������� �������������������������E� ����

����������!���������� ��������������)�� ���2�������������������?��)������)�

��������� �������������� ���

• � �� �������� ���� ����� ��������� ������2���������������-��������

����������������C�-��D�������������)����� �����������������!��-�������2��

Page 10: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ���������������������������������9�

�� ������������������������������ �������������� �����A�)���������8� ����

����������)����������������� )������������!�

�7���������(������������������������� �������������������)�� �������������������� �������������������� ������������������� ����������������������!�!��IEE�����<�� �� !�8�����!���E�����J����������� ��� ���������<����A�2������ ���)���������������������������!�$��� ����A����?��������������������������������������?�������������������?�����������������?� ����������� ��������� ��� ��8�������8����������������(($&����CD��������?�������������<�������������������������������������� ���!�������$/�����$#$�����$/'$())����0���� 1�. � ��.)����(2$�������:&�����������������������*����(���������������� ���&& ��'�����������)A����&& ��'���������3&& ��(�&& �����38:$$.-2$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)/$.--.3.$3.8�$�;$���-��$-$ ���$/)$38:$$.�12$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)/$.�1-.3.$3.8�$�;$���-��$-$ ���$/)$38:$$-��.�2$$$$$$$$$$$$$$$$$$$$$$$$$)/$��$3.8�$��$-��.�$��$ ���$89$/)������� $��:��;��'&�(� ��$�6�(�(($&���&& �� ���$&�G�;����������������$���-�$ ���$�����������&��-�:& ���1��� �� &�����.��������� & �&�����$ &�'�������� ����������������������������1��� �� &�����������&$�������� ���� �����������������1#23��3������($%�����+����&$���������������$$.-$#$<2$$$$$$$$$$$$$$$$$$$$$$$$$$$)/$��$� �-��8�$;��$����7�3�$ ����$/)$$$.�1$#$=<2$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)/$.�1-.3.$3.8�$�;$���-��$-$ ���$/)$$$-��.�$#$<2$$$$$$$$$$$$$$$$$$$$$)/$��$� �-��8�$;��$����7�3�$ ����$/)$����������������� �� ���������������������-�"���������������� ������������������������������������� ���� ��������������������(�(($&���&& ����� ���������������������������������������������������������� ��� �����&& ��'��� ��6���������������������������������������� �#�*������ �����.��H�&& ��'�����������������������������������������������������������������������&������(� $�6��������������������������������������&�(��� �#�*������������(� ����&��(� ���������������������������������������.-%$.�1%$-��.�%������&& �($%���&�(� �$��(�������������������������������������� �#�*�����;;��+������������ &��&& �<��&��(� �������������������������������������� �#�*�����;;��+���������� &��&& �<��&���((.����������������������������������������!"���#������������������������������'&��(���������� &�������������� ��������&��-�:& ���1��� �� &�����.��������� & �&�����$ &�'�������� ����������������������������1��� �� &�������������������������������������&$������H����������1#23���#1�"������������������������������($%�����+����&$��������������������(������(� ��'��������((.& ������������� �� ��������� ��������������1#23���#1�"����������������������������������&$�����(��(%�(� ������� ����;� ;�����������������������������������������4���������� ��������������� �� ��������� ��������������1#23���#1�"�������������������������������� ���5�����(� ������� ���������((.& �����������������������������������������"���6������ ������������6�����������)�(���&�����$&������������� �� ����������-������������ ����������������������������������������� ���������)/$��3��$����8��$����-�$/)����������������������������������������������$�$�$� $%����������$���$&������ ������������������������������������������������������������������(�(($&���&& ���'��������������������������������������� �#�*����� �����.���&& ��'������������������������������������������������(�(($&����66$�6��� �'��� (-�&��$&�� ������������������������������������������+������������������������������������������������������������������"���������������������������'&��(�������0000�&�(&'��.& ��&������(�(($&�0000�

Page 11: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� �����������������������������������

���&�.& ��&��(�(($&��(����������)/$����$���-�$8���$��$ ���$/)$�������� �� ����������-������(������� ����������+�����!"���#���������&$�����1��� �" ��������������1#23���#1�"����

�����8������������������ ��������)������ ���!�$������� �������)����A���������� ����A��������)������)�����������(($&�3&& � ������������C�� ���� ������������� ���D��� ���������� ������������� )�� ������� �������������������������������������(($&���������������(($&�7� ��(������������� )�������������������������������������� ������������ �2����������������?����������������������!������������8����������������� �������������2� ������������������ ������������� ��� ������2�������8����������������������!����������������� ��A�������������?����������������������3��1�>������!������������A��������������������)�� �������������������� ������� �����������������(($&�3&& � �����������!��$$.-$#$>2$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)/$.--.3.$3.8�$�;$���-��$-$ ���$/)$$$.�1$#$=<2$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)/$.�1-.3.$3.8�$�;$���-��$-$ ���$/)$$$-��.�$#$>2$$$$$$$$$$$$$$$$$$$$$$$$)/$��$3.8�$��$-��.�$��$ ���$89$/)$�������)/$����$�$��.�7�3�$���-�$ ���$/)$$$$$�������� �� ���������������������-�"���������������� ������������������������������������(�&& ����������������������(�(($&���&& ����� ���������������������������������������������������������� ��� �����&& ��'��� ��6���������������������������������������� �#�*�������&& ��'���H�&& ��'�����������������������������������������������������������������������&������(� $�6��������������������������������������&�(��� �#�*������&��(� ��(� ����&��(� �����������������������������������.-%$.�1%$-��.�%$$)/$ ���$�-?$������-��$/)$�����������������������������������������������������������������������(� ��'��������������������������������������� �#�*�����(��(��(� ������� ����;� ;���������������������������������������������������������������������������((.& ��������������������������������������� �#�*����������((.& �����������������������������������(� ������� ���������((.& �����������������������������������������������������������������������������'&��(�����������������������������������������"�����������4�����

������������������������������������������������������

���������-���������������������������C�-��D�� ������������������������������������������ �� ��� ��)������@�������������������������� ����2� ������������������� �� ������������������������A�2� ?���������� ��� ��������)��� ���� �����A��������� ����������!��-������������������K���������K��� �� �A�2���� �� ��� ���������K������K��� �� �!�

�-���������������������<��� �����������������A�2����� �����������������2����� ����������������<��� �� �����!�7���?��������<��� �����������������A��-������������� ������������������������������ ����������<��� �� �������������������������<��� ����������� ����������<��� �����!����� ���������������������� ������������?�)���������� ���� ������������������� ������ �������� ����������������������A��� ��)� ����������������������� ����� )������ ������������������������������)��������������<��� ����������������� �!���������� �<���2������������ �����)������������� �� ����������������������������������� �������������������� �������������� ������2��������������������!��

�-���������������)���������� �� ������� ���2��������<� �������������� �������������������� �� ��C���������E$����D�������������� �� ��������<��� �������������������!�$����������������������������������������������������������������������������2����-�����������������������)������������ �� !�

Page 12: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� �����������������������������������

����(������������� ������������ ���� ������ ������2����-��!�@�����������

������A�)����������� ��������8�����������������������������(������������������������

����� �� ����������!������������������)��������������747�3���!������������

������������� ����� ����I-3���!J��������������,��)����������)���8!��� ��� ��

�������������?�������������������� ������-��A� ��� ��������-���2�������� !3��

� .�# ��&�6�#�.5.��6�

�����)�������������������������������A�)��������������� ���)����� ��� ��

����������!�$�������������)������)���������������������������������� ��������)!�

� �������������������� ����� �����������8����������� �����!�����A������?���������

������������?���������������� ��������� �� ��� �������A�����������)���������

� ��� �������������!�

�$��������������2����� ������8�������)����������������������� ��2�A������� ��������������������������������������������)�� �����������'�3 ��� �5�������!���������������������*����������������������� �������������������������������������38:$$$$$$$��.�������-?$#$><2$������6�����������)�(���&�����$&������������� �� ����������-������������ ����������������������������������������� ������������ ��� ��������)�(���&�����$&��������������������������������������������������$�$�$� $%����������$���$&������ ����������������������������������������������������������������������&������(� $�6�������������������������������������� �#�*������&��(� ��(� ����&��(� ���������������������������������������������(�(($&����66$�6��� �'��� (-�&��$&�� ���������������������������������������������������������������������������+�������������������������������������������������������!"���#������������������������������'&��(������)/$��$��$����.�$����$�-?$/)$�������� �� ������������������ �����1#23��4��#K�����������������������������������.�������-?��+����������������������&���� ������

��� ������ A�������������)��������2����������(���������������� �����A�2���������������� )����������������������������������������)��������������������3&& ��(�&& ����$$38:$$$$$$$��.�������-?$#$><2$��������� &�����(�(($&���&& ����� ��������&��-�:& ���1��� �� &�����.��������� & �&�����$ &�'�������� ����������������������������1��� �� &�����������&$������H(�&& �������������������1#23��3������($%�����+����&$������������������)/$��$��$����.�$����$�-?$;��$���$���-��$-$��$ ���$/)$�������� �� ��������������� ���� �����1#23��3��������������������������.�������-?��+������������"���������������&���� ���������'$����+��������������������������������&����� $��) ��:& ����� &6���&�(��&& (������'�*���8+����������������������������������'�*$'�'���')� �&:�(�(($&�(�$���&& ������$�� �'������+��������������������������&����� $��) ��:& ����� &6���&�(��&& (��������������������� �� ���������������������-�"���������������� ������������������������������������(�&& ����������������������(�(($&���&& ����� ���������������������������������������������������������� ��� �����&& ��'��� ��6���������������������������������������� �#�*�������&& ��'���H�&& ��'�����������������������������������������������������������������������&������(� $�6����

Page 13: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� �����������������������������������

����������������������������������&�(��� �#�*������&��(� ��(� ����&��(� ���������������������������������������'$���'�*��$�� �'����������&& �($%���&�(� �$��(�������������������������������������� �#�*�����;;��+������������ &��&& �<��&��(� �������������������������������������� �#�*�����;;��+���������� &��&& �<��&���((.������������������������������������������"�����������������������������������'&��(���

�������)������������������ �� �������������������������A�����'�3 ��� �5����� ������?���� ���� ��� �����������������������������!���������������������������������������A����F���� ��� �����������������!���� 2���A����� ��� �������2����������������!������)���� �������2���������������������A�)����������������'�7� ��(�������� ��� ��������������������������?�������������!�-��������������������������������������)���� ���������� ��������)�������������������������������������(����������������������������A���� � �� ��A������?�� ������ ���2����������������������������!������$/�!�������$#$�����$/'$(����$. ��9�-�%$������.%$�����9$;��.$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ��9�$5��$. ��9�-�$#$*��"��(2���&$��(� �����'������$ (��������*��(�������)A��'��&��B�������'���(�'��������������������)A���'� &.(���8������������� $��:��;��'&�(� ��$�6�($�6 �� &.�(� ���G�;���������6������ ��� ���(����'�������� ������������� �� ��������������������.�"� ��>��(�������������������������������������.�� ��������������������)/$��3��$��.�$����$/)������������������������������ ������������������������������������ & ����� �����������������������������������&�(��� �#�*������!����������������(����'������*���������������������������������(� ������� ����>2����#����������� ��6���&:���*���������������������������������������+�����������������66$�6��� �'��� (-�&��$&�� ������������������������������������#4��2�#�K�����!"���#�������������&�.& ��&������(����'����������*������(����'����(������(�'������ ����������� � ��(������(����'�������� ������������� �� ���������.������(�'������ ��������������������������������������� �#�*�����������+���������������6-�&��$&�� ����������������������������������������!"���#�������J���

�������������������8�����?��2�����������������A������������8�����A�)�������������� �<����������������������������<������������������������(� �������� ��<����!��2��� A��� ����� ��<�� ������ ��� ��2� ���� ������ ���)�����A�)������� ����������������������������� ��<������ ����� �������)A�)����������8������������ ��������)�� �� ��� ������������������������������ ����������� !��

������&�:# �#�$.6�

�� ����� ����������������������� ����������(9%��������������������������� ���������!����� ������ ��������������2���������������� ��������

• ��������������� )����������)�����������?��������� ����������� ���(9%�

��F������������?��

• ��������������������� ��� �������������8����������� ���������2���

����� ����������������

Page 14: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� �����������������������������������

• �������� ��������?�������������������� �� ����������������� ���������

�� ��� ����2� ��� ���������

����� ���������I�������J�������������������������� ���������)�� �� �� ��������������� ������������������������8�!������ ������������O$��O,��'�����������������2��)�������������)��������<�� ������������������������8���)�����!�=�����������������)������� �������)�� �� �� ����� ����������������*���������������)�������!�$����������� ����������������)���������)��������������������2������� !��� ��� �������������� ����������)���A����������������������������� ������������� ����������)���5����������������'����!�$���A�������������)���"��������������������������������!��=����������������)���������������������� ��� ������C��������������2��� ����������������������D!������������ ��� �������������������P8���������������������������!��� �������������2������*�������� )A���������� ���� ��� ����A�)���������������������������� �������������������������!������������������ ����������� )��8�����������������������������!��� ��� ���������A����?<�����������������������!������� ��>2����#������� ����;(� �����'� &,���$��� �(����'���(� � ,�: &'�G�����������������������������'� &,��(�.�� ���'� &,���$����*��"��;�������O$����)���8������$38:$. �$#$=2$$$$$$$$$$$$$$$$$)/$���-�8�$-$ ��7��.$����$��$��$8$8�3�$/)$$$�8>$. ��-�$#$<2$$$$$$$$$$$$$$$$$$$$$$$)/$����� ��-7$-�-�����$���-�8�$/)$���)/$8-�$*��"��$/)$�������� �� ������������������A-�A9��.�(�'�����H)���8��� ���������������������������������*�����(*��"��(�����������������'��&:�)$����� $�) ������������������������������<8������ ��6���&:�)$�����'�-�<8�'���(�������� '$������������������������������������&$������. ���������)/$������$�;$ ��7��.$���-�8�$/)���������������������������-?�;�. �'����������������($%��&:�� &6 �'��� $�) �������������������������������B�������������������,��<�&���&:������ &6 �'��� $�) ��������������������������������&$������. ��-������������)/$������$�;$-�-�����$/)����������������������������)5���������������������������� �((�&:������ � ��6���������������������������������)5������������������������������ �((�&:� ��� ���&�������������������������������+�����������'�*�� �,� ��6���:& �3��@��$���*�����) �(�������������������������������)A����������������� ����� �,� ���:& �3��@��� �,(��������������������������������!"���#���

�@�����O$��O,��'���A�)������)���������������)������������)�� �������� �������������;-K;������������� ���������;-K;�����������������2������������������������������!������������ ��������������������������O$��O,3&(�������A�2������������������������ ������������������������8���)������������������������������������!���O$��O,3&(�������2��)������ ���������8������)������ ����������������������������<�� ����� ������ ����)A����)����������!�=������������������������������)��������������������� ������������������ ����� ����� ����)!�$�)����������������������� ������������� ����� ���� ������������� �������� ������� ������������������ ����� �2���������������!������ ������� ��������������8�������)������!�������������8�����(9%�����������A�������������I�J��������������������� ����� ������������������!��2��� A������������8������%E(9%�����������A���O$��O,3&(������������� �������� � ���������� ����I��������J��� ����� ��������������I�J��������������������������������������� ���������� ������ ����� ����������������������2������������������� ���!���

Page 15: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ���������������������������������2�

��O$��O,��'���������������������������)�� �� �� �������������������� ��������� ����������)�� �������������8�A�)����������������������)�� ��8���������������������� �� �������������������������!�

.;."!���&��5$6�

�����)���������� ��� �����������������2��������� ���������������� �� �����)A������8�������2������������8��������!�%�������� �����?������8�������������������/%!������$/�!����$#$�����$/'$(3 ���$. ��9�$��$�����9$#$*���$@$$$$$$$$$$$$$$$$$$$$$$$$$5��$. ��9�-�$#$*-�(2��&$���&��' �(����'�����������*��(�������)A�(� ���)A�$���B�����O$����)���8���)���5��������'���(�'�����$$38:$3.�-����-��$#$=2$������� $��:��;��'&�(� ��$�6�($'� ���' G�;��������6������ ��� ���(����'�������� ������������� �� ��������������������.�"� ��>��(�������������������������������������.�� ����������������������� ��� ����(�'������ ���������������������������������� ������������������������������������ & ����� �����������������������������������&�(��� �#�*������!����������$�����(����'������*���������������������������������(� ������� ����>2�!>��������������� ��6���&:���*���������������������������������������+�����������������66$�6��� �'��� (-�&��$&�� ������������������������������������#4��2�#�K�����!"���#�������)/$��$ ���.��$8-�-7�$/)$�������� �� ������O$��O,3&(�(�'�����H)���8��� ����=�����������������������������������&$������������(.& ���($%�&:�(� ����@�#��#�����������������������������������&$�������������)5������������)5����������+������������������������������������)A�������������!"���#������������� �� ������O$��O,3&(�(�'�����H)���5��� ����>�����������������������������������&$������-����(.& ���($%�&:�$�����@�#��#�����������������������������������&$�������������)5������������)5����������+������������������������������������)A�������������!"���#�����������*����������(����'���������&''$������������� �� ���������.��1�3��(��������.�� ��� ����3.�-����-����+������������������������������������������(�&������������������(�&�����������������������������������������������������������4��������������� � ��(������(����'�������� ������������� �� ���������.������(�'������ ��������������������������������������� �#�*�����������+�����!"���#��������� $��:�;��������(� � ,�(����((:� ,G�;���J���#�����=������������ ����������� �� ����� ������A��������� �������������2������� ������)���������������������������� �����������������������������������������������'�*��������������� ��/%�����������!�� ����� ����������?���������������������������� ������A�������������8�����������������������������������)��A���������� ���� �������8����������� �������� �� ���������� �� ����������*�� ������������ ������������ ����!���$������8�����A�2������������������������������A� ��������)��8���������&��' �(����'������� ����� ��������2���� ��������)�����������������������������������(�������������!����������� �� ����� �������� �������������������?���������� ����������������������������'�*��������������������!�����������������A�������������8�������*������������������ �C($%�&:�(� �D��������������)���C�@�#��#D���������������� �����8����������������������������

Page 16: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ���������������������������������3�

��� �����E���������)������!�@������ ��� ���������������������������������������������������������������� ���������������� � �������8��������A������ �������������� �� �����!

����!"��������#$����������

������)������A�)��������������?����� �E�������� ������������ ��� �2���������!��� ����������A�2���� ����)� �������������)��������������$ �)��/%�������������������� ���������� ����� ���������������� �����!�#������������������ �������� ��� �)�������������������;$�� (;��� ����� �����������'�*������������������ �� �����)������������������*��������� �)!���������8�����A����������������>�#7�#���!������$/�!����$#$�����$/'$(3 ���$. ��9�$��$�����9$#$*���$@$$$$$$$$$$$$$$$$$$$$$$$$$5��$. ��9�-�$#$*-�(2$��&$���&�� �,��' �(����'�����������*��(������B�$C�;-$�4������������$>$$$38:$���+�4������������,$#$DE=<<<%$EF<<<G2$$$38:$$-�+�4������������,$#$D=<<%$=<=G2$����O$����)���8���)���5��������'���(�'��������� $��:��;��'&�(� ��$�6�� �,��' G�;���������6������ ��� ���(����'�������� ������������� �� �������������������'�3 ��� �5��(����������������������������������H(�'�������������������������� ��� ����(�'������ ���������������������������������� ������������������������������������ & ����� �����������������������������������&�(��� �#�*�����>2�!>�������$�����(����'������*���������������������������������(� ������� ����>2�!>��������������� ��6���&:���*���������������������������������������+�����������������66$�6��� �'��� (-�&��$&�� ������������������������������������#4��2�#�K�����!"���#�������������&��� �'��� �)$��$�6(������������ �� �������A-�A9"���(�'�����H)���8��� ����=�����������������������������������&$�����������(.& ���($%�&:�(� C+E����@�#��#�����������������������������������&$�������������)5������������)5����������+������������������������������������)A�������������!"���#������������� �� �������A-�A9"���(�'�����H)���5��� ����>�����������������������������������&$�����-����(.& ���($%�&:�$�C+E����@�#��#�����������������������������������&$�������������)5������������)5����������+������������������������������������)A�������������!"���#�����������*����������(����'���������&''$������������� �� ���������.��1�3��(������(�'������ �����4��������������+������������������������������������������(�&������������������(�&�������������������������������������������������>>#�������������������� � ��(������(����'�������� ������������� �� ��������'�7� ��(��(�'������ ��������������������������������������� �#�*�����������+�����!"���#������������ $��:�;��������(� � $�(�(����((:� ,G�;����������������J�

.;."!���&�<!. �.6�#���=.�"��&� .6!$�6�

����������� ������������ �� ������������� �����/%�!��2��� A�)��������������������������������������������������� ��������������� ������ ���������!������$/�!�������$#$�����$/'$(����$. ��9�-�%$������.%$�����9$;��.$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ��9�$5��$. ��9�-�$#$*��"��(2���&$��(� �����'������$ (��������*��(�������)A��'��&��B���

Page 17: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ���������������������������������4�

����O$����)���8������!�:$������:��8�����:��5�����:��Q��������'���(�'��������������������)A��'��$�������� � �(����'�C8++E�����)A��(� � ,�����)A���'� &.(���8����(.& ��(����(������������� $��:��;��'&�(� ��$�6�($�6 �� &.�(� ���G�;��������6������ ��� ���(����'�������� ������������� �� �������������������'�3 ��� �5��(����������������������������������H(�'�������������������������� ��� ����(�'������ ���������������������������������� ������������������������������������ & ����� �����������������������������������&�(��� �#�*�����>2����#���������(����'������*���������������������������������(� ������� ����>2����#����������� ��6���&:���*���������������������������������������+�����������������66$�6��� �'��� (-�&��$&�� ������������������������������������#4��2�#�K�����!"���#������������)$���$������� �'��� (������������ �� ������O$��O,��'��(�'�����H)���8��� �������*�����;->3��;����������������������������������<8����&$�����H�'��&����������������������������������($%�&:��'��&����@�#��#����&$���������������������������������������������)5������������)5����������+����)A���������������������������������������������!"���#����������*����������R�� ,������������ �� ���������.��1�3���(������(�'������ ����<��+�������������������������������������������(�&������������������(�&������������������������������������������������!"���#�����������������������!�:$���&������)�::� (������������ �� ��������;-A9"����(�'�����H��:��8��� ����8���������������������������������������&$������. �-����()A���-?�;�. �-�'�������������������������������������B����������&$�������������)5����������������������������������������������)5�������������!"���#������������� �� ��������;-A9"����(�'�����H��:��5��� ����5��������������������������������������&$�����������.���()A���-?�;�������.'�������������������������������������B����������&$�������������)5����������������������������������������������)5�������������!"���#�������������� �� ��������;-A9"����(�'�����H��:��Q��� ����Q��������������������������������������&$�����������9���()A���-?�;������9'�������������������������������������B����������&$�������������)5����������������������������������������������)5�������������!"���#����������"�����&��� &.������(����(��������.�H����(�'������ ����3.���5������"#�1��K#�����������������������������!"���#�����$:��(����(�������������������� $��:�;:������� �(� �(-��'� &,���$��I��� �(����'��I(��(� � ,�I�G�;��������������'��$��� �(����'���(� � ,������ (������������ �� ����(����(��������� � ��(������(����'�������� ������������� �� ��������'�7� ��(��(�'������ ��������������������������������������� �#�*�����������+���������������6-�&��$&�� ����������������������������������������!"���#�������J�����2��� A�������)������A������������8�����������A�)���?��2���������������(9%���8����������)���������������������� �!�������������A�)����������������������)��������������8��������������������������� !������������A���������������� �������������� �������� �� �����8����������������2��������$/�!�������$#$�����$/'(����$. ��9�-�%$������.%�����9$;��.$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$. ��9�$5��$. ��9�-�$#$*��"��(2���&$��(� �����'������$ (�)��� ����������*��(�������)A��'��&��B�

Page 18: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ���������������������������������7�

����O$����)���8������!�:$������:��8�����:��5�����:��Q��������'���(�'��������������������)A��'��$�������� � �(����'�C8++E�����)A��(� � ,�����)A���'� &.(���8����������������� $��:��;��'&�(� ��$�6�($�6 �� &.�(� ����.$���)��� ����*���:����G�;���������6������ ��� ���(����'�������� ������������� �� ��������'�3 ��� �5��(������H(�'������ �����������������������������������������&�(��� �#�*�����>2����#�������������������������������������(� ������� ����>2����#���������������������������������������� �#�*����������+�����������������������������������������#4��2�#�K�����!"���#����������)$���$������� �'��� (������������ �� ������O$��O,��'��(�'�����H)���8��� �������*�����;->3��;����������������������������������<8����&$�����H�'��&����������������������������������($%�&:��'��&����@�#��#����&$���������������������������������������������)5������������)5����������+����)A���������������������������������������������!"���#����������!�:$���&������)�::� (������������ �� ��������;-A9"����(�'�����H��:��8��� ����8���������������������������������������&$�����H�'��$����()A��($%�&:��'��$���������������������������������������@�#��#����&$�������������)5����������������������������������������������)5�������������!"���#������������� �� ��������;-A9"����(�'�����H��:��5��� ����5��������������������������������������&$����� �(����'����()A��($%�&:� �(����'���������������������������������������@�#��#7����&$�������������)5����������������������������������������������)5�������������!"���#��������������� �� ��������;-A9"����(�'�����H��:��Q��� ����Q��������������������������������������&$�����H(� � ,���()A��($%�&:�(� � ,��������������������������������������@�#��#����&$�������������)5����������������������������������������������)5�������������!"���#�������������������*����������R�� ,������������ �� ���������.��1�3���(������(�'������ ����3.���5���+�������������������������������������������(�&������������������(�&������������������������������������������������!"���#���������������������� $��:�;:������� �(� �(-��'� &,���$��I��� �(����'��I(��(� � ,�I�G�;������������'��$��� �(����'���(� � ,��������� � ��(������(����'�������� ������������� �� ��������'�7� ��(��(�'������ ��������������������������������������� �#�*�����������+�����!"���#�����J�

��������������������8������A�2��������������������� ��� �����������������

��������������� ����������)!����)���?��2�����)�� ����������������������������A�)���

������������������ ������������������ !��2��� A������ �����������������)�������

�������������������������A�)������������������������� ��� ������������

��!�:$��O,3&(�������!������8���8������2���������� �������������!�

#��������������������� ��������� ������� ��� ��� ��������� ����������)�����������

��� ���������2���!�=��������������� ����������� �� ����� ������A��������� ������

�������2������� ������)��������������������������������������� ���������������

�������2�)�����������������������������'�"��������������������������������

����E������������ �!��

Page 19: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ���������������������������������8�

����%�������

� ����� ����������������� �)���������2������ ����������������������� ��� �2�!�

����������������������� �2����������A�2��� �������������)� ����� ����������

��������A�)��������������� �2������������������� �)�������!�

������$/�!�������>$#$�����$/'$(����$. ��9�-�%$������.$;��.$. ��9�@$$$$$$$$$$$$$$$$$$$$$$5��$. ��9�-�$I$*��"��$����$89$. ��9�-�(2���&$��� �,�:������������*��(�������)A��'��&��B�C�;-$����!���&�$=<$������'���(�'���������O$����)���������!�:$������:��8�����:��5��������$$38:$. -�+����!���&�,2$$$�8>$. -��-�+����!���&�,2$$$����$��.+����!���&�,+E<,2$$$�8>$$��.�-�+����!���&�,2$$$38>$$��.��+����!���&�,2$��)&& �����&���"��������)A� &.(���+�����)A�$��+����()A�(����(�������� $��:��;��'&�(� ��$�6�� �,�:����$�6G�;���������6������ ��� ���(����'�������� ������������� �� ��������'�3 ��� �5��(������H(�'������ �����������������������������������������&�(��� �#�*�����>2����#5�������������������������������������(� ������� ����>2����#5���������������������������������������� �#�*����������+�����������������������������������������#4��2�#�K�����!"���#����������)$���$������� �'��� (������������ �� ������O$��O,��'��(�'�����H)������ �������*�����;->3��;����������������������������������<8����&$�����H�'��&����������������������������������($%�&:�$������@�#��#����&$���������������������������������������������)5������������)5����������+����)A���������������������������������������������!"���#������������*����������R�� ,������������ �� ��������'�*�������(������(�'������ ����+��+�������������������������������������������(�&������������������(�&������������������������������������������������!"���#�������������������������!�:$���&������)�::� (������������ �� ��������;-A9"����(�'�����H��:��8��� ����8���������������������������������������&$�����. -����()A���-?�;�. -�+<,'�������������������������������������@�#��#����&$�����. -��-����������������������������������������)5������������)5�������������!"���#������������� �� ��������;-A9"����(�'�����H��:��5��� ����5��������������������������������������&$�������.+<,���()A���-?�;���.+<,'�������������������������������������@�#��#7����&$�������.�-����������������������������������������)5������.������)5������������������������������������������������!"���#����������������"��������� &.(�������$'�������5�-�$�J��'$��B�����(����(��������.�H����(�'������ ��������!���&���������������������������������"#�1��K#�����!"���#��������$:���(����(���������������SS��(����(����������!�#��������B�������-;$�����3�$##$�����4�����'$�������� &.(����77�2��?���������������������� � &.(��(����:& �.� ��&)��$����������������-;$�����3�$##$�����������'�������B������������'$6��������6&�����:�.� � &.(������������������ �� ��������� ����(�'��������1#23��#>#�������������������������������H &.(����)A��������������������������������������������##7�7�F��"#�1!��� �����������������&�����#7���������J�

Page 20: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ���������������������������������9�

������:& ��$�+��$�T� &.(��$UU����������� $��:��;�'� &,���$��I��� �(����'��I(G�;���'�$�C$E�� ��'�C$E��������������J������ (������B������������� ��� ����(����(����������&����#7�������J���J������� � ��(������(����'�������� ������������� �� ��������'�7� ��(��(�'������ ��������������������������������������� �#�*�����������+�����!"���#��������� $��:��;� �,�:�����(����((:� G�;���J�

"# #"�. �6.��"��:. 6���6�

@����������������������������������A�)���������������2� ������������������

�8����E����������������� ���� ���������� ��������?������������������������

� ����� ������2�������������������� �� !���������������������������� ���� �

����� ��������������������������������+��� ��� ���������!�

������ ����)������������ ���� ���������� �������� ������� ����� ����)��������������

���?������� �����2�������������������� �� �� �������� �� ��� ���� ���������������

�� ���� ���������������� ��!�=���������� ���������������*������������� ���� �����

C������������ ��������� (� ������� ����?�������)������ ������D��� �

����E������������ ��� �� ����������)!������8��������2�����������

�������E���������7�����������!�

��38>$��-�$#$����4�H=K��2$������$�(� �$�6���$�&����������������)$���$������� �'��� (������������ �� ������O$��O,��'��(�'�����H)���8��� �������*�����;-��>;����������������������������������<8����&$��������'�����������������������������������($%�&:����'�����@�#��#7����&$�����H���'��$��������������������������������������)5������������)5����������+����)A���������������������������������������������!"���#������������(���$:,���� �(���$��:& �����)$�������������� �� ��������������8� =�����1#23�O�!�����-����+����������������������������������������������������� �������������� �� $��$�6���$�&������������������:$���&�������� �'��� (������������ �� ������!�:$��O,3&(��(�'�����H��:��8��� ����5��������������������������������������&$���� ��'�C+E���()A�($%�&:� ��'�C+E��������������������������������������@�#��#7���&$���� ��'��$�����������������������������������������)5��� ��'�� ������)5���+����������������������������������������!"���#����������(���$:,�������� ���� �(���$��:& �������:$�������������� �� ���������������;� =�����1#23�!"������-���+�����������������������������������##7��1�7�#�!��� ������

Page 21: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� �����������������������������������

� #�6#"�����"��� �$�

������ ����������� �������� �� ��������������������� ������?!��������� ������A���# ��(�&''$����������# ��(7& )�������������� ����� �����������������!��� ����� ��������������)������������>>#����������A�2� ����������A����������������'�*�������������� ������������������������������������)���?���2������������������������������!��

� #"$.�6."! .=�$.6�

�� ������������������(��� �������� ���������������������������� �����F������� �� �����!�@���(��� ������A�� ���������������� ���������� �� ���������� ����� ������� �����F������� ����������2� ?!�(������������������*�������� ��� ����� ��������2�������������8�������������������!�(������� ��� ������� ����� �������� � �� ����������2�$���!����������2����������%��������� �������2����)��8��������������� �������������� �� �������?��������������������������� !������2��� � � �� ���)�������� �� ������������� ����<� ������ �����������%��� �������������� �� �����������������������������%��!������� ��������2������ ����������������2���������

• =�������������������������)������ �����%�������� ���� E �2������C�� ��%��(E�%��(� ����������)D� ����2�������������������� �������� �� !�=���������������)��������������� �� �����������)������������������������������������� � ����������������� A� � �������������)������������� �)������������!�=����������������� ������������ �� �����)���*�������� !������������A��������������������������� �������� �� � ��� ��������������������� ����� ��������)�������������������������� ����<� ���!��� ��� ������ ������A����������������������������������� ������� ��� ��������%���!.�

• ��������� ����A��������������������)�� ������������� � �� ���)�����������%��������� ������)����������������������������%��� ���������!�������������A����)���������� ��������*���� �%���A���������� ������%��������������2������������ ������� ������ �� ��������������� �%���!�(���������%���� ��������*�����������������������2� ?� ����� ���A�2�������������� ����� �� ������2��!�������&)������6��5�������&)7���5��A����&)� �,7������������&)���������$%������������������ ��������������)�2���%���� ��������!0�����������������������������������A���������������������������?�������������������������� �����2�������������������������!������������������������������������������������A����)������� �������� ������������������������������

���38:$�;�3�����8 �;�����-?���5+++�������������������(�����:�� ��($%���&�5V�������������(��� &)�� �:�������� $)�����&�(�(($&������������� �� ���������������(�((�������1#23����������������������������������������;�3�����8 �;�����-?����������� $)������ ������������������������������������+�������������������������������������������������H�4�����A"��H�������&���������� ��,������������������������������������� ������������ ��� �/����

Page 22: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� �����������������������������������

������&�� $���������:�� ��� �:�����($%���&�AV�&����:$������� �������38:$ �;�����-?���A+++���������� �� �����������������:��������1#23�!"���������������������������������� �;�����-?���������������������� $)������ ������������������������������������+�������������������������������������������A"��H�������&������������������ ��,������������������������������������� ������

.".�:��&��#�#�#6.�.:.��6�

���� ������������������������� ������������������������������������!�������������� �� ������������������������)A������)������$�����������#������������C�$#DA���������������)A������)�-�������%��������������C-%�D����-$������ �������!���������������������� �������$��������9�����#��������������������������������#������������!������ �� ���� ������������ ��������������������������A�)����������������*��)�� �,��� �������������������4�#������!�� ����������������?����������4�#����������*������������������������������ �����2���)�� �� ��� ���������)��� ��� ��������������4�#����2�)������)��������!��������4�#��������A��$#�����-%����������������� �� ������������� ��������� ����� ����)����)�����������(������������$����C������� ��� ������ ��� ���������������I����������������������������JD!���������� ����A����)���������)�� ��2������A��)������������������������ ��������$#��������C�����������-%��������D!���������)�������)�� ��2�������������A�2���� ����)�������������)���������� ��������������(������������$�������������� ����������������� �<����� �����2�������������������� ���)����� ����!��2��� A����)������������)�� ��2�������������A������8�������������� �����2���)������������������ �������$#�������!

���������% &!'����

=������������8�������)����������$#�,���������)����)��������������������!�=������������)����������?�����2�����������)��������������������������������� ���)�� ������������� ���� ������&$������� )����:���&$��������*��������������������

��2� �������*�������������������8�A�2��������� ���������������� � )!������� �������� �����������������A�������������������������� ��������� ������������������2�����������!����� ������ ��A��������������2��������������������� ����������!���������������-$���$#�������A������������?�2�����������?������� ����������������������������������������������!���������2�������� ���������������� �������� ���������� ������ �����������������?����������8�A� ����������)�������������##7�4#�OV������������)����������� )�����!������������##7�4#�#K������������)����&$���!���(���$����� ��',��*������� ����;��'',��&���*�;��������&���*����((����&��� )��������

Page 23: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� �����������������������������������

�����(���1��������� )���������&���*������������� �� ������������������������1#23��4����&$�����������8����;�������������������������������+������������L��AM��� ����������������� �� ������������������������1#23��4��.9��1�������������������������������+������������L���N��� ���������@������������,������������?A����������������������� �� ������������������������������������������!��� �-$�����$����������)�C$D���@#�������A���������������������������� ������� ������������� �� ������������� ������������)�����������)������������ ������2������ �������)��������##7�1���47"7�#���������##7�1���47�K#����&$������� )����:����&$��������*��������$/��� ��B����������$/���� ����(.& ��(����(�������� $��:��; ���$����1�������-�I(;������ ���������*���������6�������:$ (��������&�����$&��: &'��������������� �������(����(�������� ����������������1#23�4�#������� ����)A����������������������������������������������LH������� �����������(����(�.$ �)��������������.�����&�'& ��������&�����$&�(� �:�������5�-�$�����3�$##$�����4�����'$��B��������6&����������&�����$&������������������ ������( �����.�$���$(���������&�����$&�����������������6�����*��������&�����$&��: &'��������������� ���������(����(�������� ����������������1#23�4�#������� ����)A������������������������������������������������L��N���� �������J�J�����2� ?�������������������?����������?��������������������� �� ����� ����������������� )� ���?�)!�����������������������������������8��������� ����������������������?!��� ��� �����������������������?���� ���A������������������$����������)�,�����#�����������1�����������������������!��$������ ���������� ������ ���������������������������������������A���� �����2����������A����������� ������ �����������?�������!��������A�F�������� �������������������������A����������������?�����##7��747��#�#��!�������� �����������������������$#������������������)����������������������������!�����##7��747��#�#������������ ����������������(� �� �������C2�������������������� ����������(� ����������8�D!���������� ���������������������������������������������A������������������������������� �������������������������� ������������������������������?��� �������� ��������������A��������������������������������!������������(�$:���6$�����&�����$&��$(��� $�����)&& ����$(��&�����$&���� $���������*��(������B����)A�(� �� �����(���+�������� �� ��( ����������� �� ����������������6�������(� �� ����� ������������� �� ��������� ����(���������1#23��4��#K������������������������H( �����+������##7��747��� ������������6��������&�����$&��(����(������������ �� ��������� ����( ��������1#23��747��

Page 24: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� �����������������������������������

���������H(� �� �����(����)A��������������##7��747��#�#����� ������������������$:������&�����$&��$(�6&��������$:��(� �� �����(��������747���#������#!����B������� $��:�;�&�����$&��$(��&.�0G�;�������� ��� ��"�������J������ $��:�;�&�����$&��$(���0G�;����� ��� ��#7�������J�

�#��������������� ���������L����������������� ���������������������������)!��� ��� ���� ����� �������2)����������������)���������������A��!�!�����$�������?��������� �� �� �����A�� �������2� ?���)������2�A�������?��������� ����������������������������!�������������A�������� ������2�������������������������������������������H�)���2����?��2������������������������������)�2���)����������������8������������������� �� !��2��� A�������� ������������������������������������)��������������������������� ��������������������������� �������������C�!�!�����������������������������2�D����������������������������� � ��C��������-$<5��5D������ ��?��2������ ��������������!�

.��>��>.�����#&��6��"�#�� ��!�.6�

������)��� ����������A��)������������� ��� ���������� �� ��������������������

���������C���������� ���������� ��� ���2�)� �� )D����?��������������������A�������A�

� ��� ��������<��� �������������<��� !��������������� �2����������������

� �����A������������������)�������� ���E���� ��������� ���������� ��� ��� ���������

�����������������!�$�)�������������������������� ����� �����������������������

��������������������2������������� � ������������� ������ ���������������������

��������������������� �����!�

(�� �����2���� �����������������A������8������������ ��������������2������ ��� �

���������)�����������������������##7�!747���>���� ������������)��������

���� ��� ������������������

�������:&����������� & ��� ����/�L��:$�������������L��$$O�38901 9 ?P�000������(�������'��&:�� $����($���� $�� ������������ �� ���������������3�� �����1#23���#1�"����������������������������������&$���������������L�����($%�&:����#�!747��<8��������������������������������������������L���������� �����

����� ��� ��������� ������������������������ �� ���������� �� �� ��?�������� �

������������� ���������������������)��������������#�!747�����������

4M�����������#��"�������4M�����������#��"�!�� �����

����� ��������<������� ��� ����������������� �������� ���������������

������������!��� ��� ����� ���������������� ������������������2������ ��

�����������)��������!���)�� ���

���#��1�7�#�M�(�2������������������� ���� ������

���#�����O7�72�M�@��� ����<������� �����������������

Page 25: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ���������������������������������2�

���#�47����M�4� ��������������������� � )A��� �����-��������A���������!�!;!.!;!�

����������8��������� ������������������##7����#�!�#"7A�

����##7�>�!�����������##7���#��������������������������������������

C2���������������� �������� ����������8�A������2���������8����������2D����� ��

��)����������������������������!���������������������� �������������� ���������

�� ��������(9%�������������������������������������?����������<��� A�������<

���������������������� �����������������������������������2�������������������!�

���(��(���(� $�6���� $)����&������(�(($&������ ������&$��(���(�(($&����� $)�����������*��(����������������������������������&�(����� ����� $)������ �����)A���� $)�����&����B�������(($&����(� ����������(($&������������������� �� �������������������� ����(�������������������������������1#23��4��#K������������������������H�(� ����������������������������)A������������������������������������##7������������������������������� ��������������� �� �������������������� �����(� �����������������������������1#23��������������������������������&$�������� $)������ ��������������������������(� ������� ������� $)������ ������������������������������ $)�����&��������������������������� ������J��B�������///6�����������)�(���&�����$&������������� �� ��������(($&������������� ����������������������������������������� ������������ ��� ��������)�(���&�����$&��������������������������������������������������$�$�$� $%����������$���$&������ ������������������������������������������������������������������(�(($&���&& ���'��������������������������������������� �#�*������&& ��'����&& ��'������������������������������������������������(�(($&����66$�6��� �'��� (-�&��$&�� ������������������������������������������+������������������������������������������������������������#��3���������������������������'&��(�������������(�������� $����$���������������-������-83������ %$(.��9 �.-��(%$����������������������H���'2$�������/���������(�������'&�� ����� $)����&������ $�6�� &���� ��� �,�:������������������-������-83������ %$(����9�;���(%$������������4��'2$��������(������ &� $�������$&����� $)����� $& ��&�����)�(���� (��������������-������-83������ %$(1�3��Q3�9(%$���������������'2$����������&�.& ��&��(�(($&��(�������J�

�������� ������������ �����4M�������

��@�W�(� ����� $����$����$:$� ��'&�� ������$&��: &'��M(�(($&���.�� ��� $����$����$:$� � $���='� ,I=������#�!�#"7�>�!��������������#���<<<<<<<<<<<<<<<<<�<<<<<<<<<<<<<<<�<<<<<<<<<<<<<<<�'� ,0('$����������� �,�:����������*������R�� ,�

Page 26: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ���������������������������������3�

�������� ��������������������� ����� ������ �������������������� )���������� �

����������������� ��������������������������������?�������� ������ �������� �����

������������ �����������E���������������)�������������� ��

�����������!-�D908X+Q��5++D<+A<8N�8A-+8-8X0QD5��������#�!-�'� ,0('$����5++D<+A<8N�8A-+8-8X0QD5������74����>-�(� �(0�(0��'�0�&'��5++D<+A<8N�8A-+8-8X0QD5�����>�!�����>-�� �,�:������5++D<+A<8N�8A-+8-8X0QD5�������#�����>-��*������R�� ,��5++D<+A<8N�8A-+8-8X0QD5�

(�� �����2���� �����������������!���������������������������� �������������

$��������������������-������� )�C$�-D:�� ���2� ?!�$������ ����������� ������

C���������� ��D�������������������������� ���2��������� ����� ��������������

�� ������������������������� ���������!����� ����������������������!7�O������������

�������������� ����!� �!�%��?����������������������)��;�������������������������

�� ������������������������������� ���������!�

"#"��&�<!. ?� .6!$�6�����.�"$�.���

���)�� �� ��� ������ � �� �������������� �� )� ��������� �� � �����)�������� �� ����

��� ���<���)�� � ���<�����)�������A�)���������������� ������������������

����������������������!��

����� ������������������������������ ���������� )������������������ ����)�

���������������E� ����������� �����!���������������������������������� )�

�������������������� ���)����� ��!�7����������������������� ����L����� ���

(�������������-��������������)��������������������#�����������������������A�

��������������������������������)�� ����� ����)��)��������������������������

��������F������������������������������������ )!�

@���������������������A����� �� ����2������������U� �(� �����������������

������������������������������!������� �� )� ���������������������������A����

����'�*����������������� ���������'�"��������������������������� ��

�� ��)������������������������������ ����<� ���������)� �������������������������

������������ !�

����������������������������������������� ������ ������)������)������������

���#�7���#����1��?�C��������;A��������������D����)�� �����!� ��������

��������!�=������������������)����#�7���#����1�����C��������A�5;;;���

�������DA�2��������������� �����������2��� ����?������������������������

����������������������� ����������!��� ��� ������������������������������

�� ����� ��)��������������� ����!� ������������������ ������� ����������������

������������7���#����1�>�K��?�����7���#����1�>�K�7�#��?�

�������7���#����1�>�K�7�#�7�F�0�

Page 27: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ���������������������������������4�

7���������������������������������������2��)�������)�� ���� ��������������)�� �

���������� ������������������������������������������� �������������������������

���������������� ��� ���� �!������������������ �������2���� ��������������� ��� ��

�������B���<���A�����A����!#�����������!��

� .=. .��� �& #55��&�5��.$6�

(������!�'��������(���������������'�)�

������� ��A����)���� ������������(������������)��������������������� �������

������������������)������ ������������������� ��������������(�����������!��

���)�� �� ��� �� ��������������������������� ������� ������������� ���� ������

�������������)A�)�����)������������2��������� ����������������� ��� ���� �

���!�

(������!����(���������������'�)

��������������� ������������������� ��������������K2?��������2������� � �

������������������K2?�������� ��� ������� ������ � A����� �������������������

�������������� � ����������� �� ��������������2������ & ��������������

�� ��������� � ����������� � ��������!������������ �� �������������������� � �

�������� �������� ��������� �����������������������A����� ������� ���� ��������

�������� & ����������A������������ �������������������� 2 ���������� � �

���������������� ������ ���� ���!�

���� �� �������������� ��������������A�� ����� ��������������)�����������

� � ��������� �� ���!�$��� �������)A�)��������������?����� � ������������������

����� ������2����� �����C�!�!������� �����������D�����)������������� ����*��

������������������������� �� �����)������������� ������������������ ����������!�

�����������������������������!"�����)

@�� ������������������������������(9%��������������?��2������������A��������� ����������������� �� �������!�:$������������� ���������������'�*�������0�$���A��������'�*�������������������������)��������� ���� �2������������������������������������������'�"��������������� !����������� ����A�������� ��� �������2���� ��� � )�(9%������������2����������������?��2������������������������������������ ��������������������� �����������������������������!�:$�������� �A������� �����������������������������!�:$������������� �����'�*�������!�

���������*������������������*����)

������������������������������������8��������������������� �������� ������������� ��� ��������A����������?��������������������##7�37"#�1��?���������##7�37"#�1�7�F��#�2����8����������������������� ������ )��� �������!�����2����� ��������� �2���� �����8������������������ ����������������2����������������������������2���������)!����� ������� ����� ������������������!��

Page 28: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ���������������������������������7�

�2��� A������)����������� ��������(,%,�������������� �� ���������!�:$��������A�2�� �������������)��� ��)����$ �)��������������������� ��������!����������������$ �)��������������������)������������������ ������� ����� �������������N�� � �� ������������������������)�� �������� ����������� ������������!�:$�������� �!�

������������*����+������)

� ����������� ��������������<����?��������������� ��������������?����������������������F��������2��������<� ������!�����������<� ������������������� ������� ��� ������������������ ������A�� ����� ��������������?������������������C����?���D�������� ������������!�������������A���)����?����������������������2���)���� ������?������������������������������ ����2� ?��E������������������������������ ����� ���!��7�����������<����?�����������������)����������� �������������� ������� �� ���������������� ��������8�����������������)���������������������?���������)���������������������������� ���������?����������������!��

(�����������������������)

/��)�� ��� ��������������������� ���������������������������������������8�� ��!��� � ��������������������� ������������� �� ����������� ������������� �?�������� ��?��������������������������2����� � ������������������������������������������8�� ��A������������������������O �����������������������!�����������O �������������A��������?���� �������2�?��������������������������2������� �� �������������������������-$<�;�5!�

(����������������������������)

�$#������������*���������������8���� ���������������������!��2��� A������2����$#��������A�)������������������������������������� �� ����2���)�� ��������������������������!������������A�)����������� ��� ������������������������?������������������������������������������ ���������)� ���� ���������������2�����������������!���@��� �������������������� ����� �� ������� � ���������������������������������� ���������� �� ���!���������� �������������� �� ���������������������������������C�!�!���������� �� ������������������DA����������� ���������������������� �� )!���������� ����A���������� �����������������������������������C�!�!����������������� ����������DA����������������������)�������������� �� ����?������ ������ ����������������� ����������������� �� )!���

�!�$���&�?�! ��"��� �& #5�

�� ���������������������8������A�)���2����������������������������2�������� �

�������

L$�� ����T(��$&0�W�L$�� ����T(�� $)0�W�L$�� ����T(� $�60�W�L$�� ����T&�$0�W

Page 29: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ���������������������������������8�

$������������������������)�� � � �� ������!�=������������������G ����!�?�

��?���������������)�� �� �� ��!����)���� �����@����2�A�)������������2����������

� ����������������@����2�����������������!�

/��)�� ��� �������� � �� ����������������� ������ ����� ������������ ���������������

������������������������� ������2� �����������������������)����������������� �

�������!������������ ��� ������������������������� ����������������� ����� ����������

���������A�2�� �������������)���������� �������������������)���������������

������������>�Y�7�47�����������>��7�47���!�$������8�������

L$:����������R���L�������W�8+��SS������>�Y�7�47�������8+��HH�����������������������������������������L�������W��5�������������K2?����$ �) ��������!&���K2?��� �L� (�����!&�& �� ��� �L���$:

��6�#���"$�.���

����������������������� ����?�������8� ����)����)���������)�����������

��������������)����������������������� �����7����1�>!��������������������������

���)����F����� ������ � ���!�=���������2������������������������������ �� ���� ���

��#!�3��� ��� ���������A�����������?�����������������������������������!�5�

!�& #���&��.�"$�.���

���������������������� ���)��������)����?���2��������������� ������ � )�� ����;��

�������� � ��������� ��� ��<��������������2�������� ���� ������!�������A����

�� ����� �����������<������� ������ � )���������������2������� ��������� ��������

������ � )������ ������� ��� ������������������������� ��������������������!�

(�� �����2���� �����������������A����� ������������� �� ���������)����������?��� �

���� ��������� �������������� � )����� ���������������� ������ ����!��� ��� �A�

�����������������������)��������)����?���2������� ��������� ������������ �����

������<������)��������� � )�C� ����;���������� D��������������������� �<���?������

��� ����2�������� ������ ������������ �����������<�������� � )!�

@������� ���������������������A�������� ���������2� ����� ����������� ������

��������������������� ��������������������������)!�=���� ������� ������������ ����

������������������������������ ����������)�� ������������E� ��� !��� ��� ��

�������A������������7�� ������=�� �$�����������!�"�

Page 30: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� ���������������������������������9�

!�& #���&��.�6. :. �

� ����� ��������������)������ ����)�� ������������2� ��������������� ����

�� �� �����2� �!��� ��8�����A����)������ ����)�� ��� �� ����� ������������������

-���������C��!�DA������ ����� ������������� ��������������������2� ������ �����

�������������-���������C��!�D����2���!�O������������ �� ����������������2� ��������

����� ������������ ����� ��������8�������������)��� �)�� �������������!����

��������A������������ �������������������������2� �������� ����������������� ��A�

�� �� ������������������������8�������2� ����������������2���� ������� �������!�

�2��� A�� ��������������� �������8���������E�� �� ����� ����������2���!����)�� �

������������� �� ���������� ������7����1�>A�����)������ ���������������A�

)���� ������ � �� ������ �<����A� �<��������� � �<���?�)�� �����������������!�%��?�

��������3;05;5!���� ������ ����)������ ����������E�� �� ����� ��� ������)���� �8����

/���%��?!�+�

"��"$!6����

�������� ����� ���������2���� �������������� �������?����������������������

� �������������� ������� ���������������������������� ��� ���� ���� ������)������

������������������ ���������� ����� �������������!��� ��������������� ���� �

2�������������������� �������������������� ����� ������������������ !������

������������2���� ������������������� �������������2������ ��������������

�� ������ ��� ��������� �� ��������)��������� ������� �2���2�����A���� �����A�

��������������� ���������������������� �������!��������� ������������������ ������

����������������)�� ��� ���������� ������������� �������)�����������������������

���� ���� �������������� ��� �!�

���������������������������������������������������� ������������������'������*������(���� ��'����������EE��2�����!� ����!���E����E��E�315+:G;�E�� �� !���E�313:1E�������������!��P�.5+;�.�3��-���2�������� �������EE222!� ����!���E��������)E���E���E���E� ����� �����!����5���� ������������� ����������)��������EE��2�����!� ����!���E����E��E�315+:G;�E�� �� !���E�315�1E�����)��!��P�#�����5�"������)���������������EE��2�����!� ����!���E����E��E�315+:G;�E������!���E�315:+E���;5�)�!��P%#���;5;�+��� ���� ������ �������������������������������������EE��2�����!� ����!���E����E��E�315+:G;�E������!���E�315:+E���;+���!��P�� ��.+0�

Page 31: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� �����������������������������������

�������������������������������������������������������������������������������������������������������������������.���������� ������� ��� ��������%��������EE��2�����!� ����!���E����E��E�315+:G;�E������!���E�315:5E�����G����G���� ����!��P��;3:51��0�� ������������%�������A�%������������?�(�*������EE��2�����!� ����!���E����E��E�315+:G;�E������!���E�315:+E���;0���!��P%#���;0�;;�1�$�,�����#����������������EE��2�����!� ����!���E����E��E�315+:G;�E������!���E�315:+E���;:���!��P�B'��,�'�:�$��������������������-������� )�����EE��2�����!� ����!���E����E��E�315+:G;�E�� �� !���E�315�;E����;;�!��P$�/�#��3.���;��������������������)�������������EE��2�����!� ����!���E����E��E�315+:G;�E������!���E�315:+E����;��2!��P%#����;3;������������������$�������������� �@����2�������EE��2�����!� ����!���E����E��E�315+:G;�E������!���E�315:+E�����2��!��P�� ��+00���3�������������������� �������������)�#��2� ?������EE222!� ����!���E��������)E���E���E�������������E����8!�����5������������������������������������EE��2�����!� ����!���E����E��E�315+:G;�E������!���E�315:+E���;����!��P%#���;�:��"�7�� ������=�� �$������������������EE��2�����!� ����!���E����E��E�315+:G;�E�� �� !���E�315;;E���!��P7�'-�;;.��+�/���%��?�������EE�������?!� ����!���E�

!6.=!$������. 6�

�������������������

�������EE��2�����!� ����!���E����E��E�315+:G;�E������!���E�315:+E���!���

������#��������

�������EE222!� ����!���E��������)E���E���E����8!����

������ ����

�������EE�� ���!� ����!���E�� ���E�� ��!F���>�� ����Q.0�

�����������������#�������

�������EE222!� ����!���E��������)E���E���E�������������E����8!����

����������������� ����

�������EE�� ���!� ����!���E�� ���E�� ��!F���>�� ����Q�:;�

Page 32: Building High Performance Drivers For Oracle Database 11g: OCI

�������������� �� ������� ��� ���� �� �����������������@��"����)�����������A����

B#) ��C��997�

#��� @�$�D��"������ ���

"��� ����� �@�6������������*�" ����)� �+����*�6 �����E �����'��-*�E������5����*�E �����5���*�E����������

� �����"� )� ������

(� ������A�� �� ��

299�� ������� F'�-�

��'����6� ��*�"#�8�932�

!,6,#,�

(� ��'������A�� ���@�

����@�G�,329,293,4999�

=�D@�G�,329,293,4�99�

� ����,����

"�)- ����H��994*�� ����,�#��� ����� ��� ���,�

����������������) ��������� ����� �������)� )��������-���������

���������� ����� �����I�������������'������������,�

��������������������'� ������������� � >� ��*��� ����I���������-��

��� �'� �������� �����������*�'��� ��D) ������� ���-�� ���)������

�����'*�������������)�����'� ��������������������������� ����������-��

� ����������� ���)� ������ �)� )���,�(���)���������-������������-��

��������-�'��� ��)������������������������������� ��������������������

� ���� �������� ��� ����-�� ����� ����-��-�������������,���������������

��-�������� �) �������� �� ���������������-��� ��� ��-���-������*��

����� ������ ����������*��� ���-�)� )���*�'�������� �) �� �' ������)� �������,�

� ���������� ������ ���� ����� F����� �����"� )� ���������1� ���������������,��

��� ���������-����� ����� F�������� � ��)��������'�� �,�