Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Argument error using OTP 22 #75

Open
nkezhaya opened this issue Jul 20, 2019 · 6 comments
Open

Argument error using OTP 22 #75

nkezhaya opened this issue Jul 20, 2019 · 6 comments
Assignees

Comments

@nkezhaya
Copy link
Contributor

Env:

InstantClient 12.1/12.2
MacOS
Erlang 22.0.7

Calling :erloci.new([]) results in:

20.07.2019 00:01:03.657197 [debug] [_OCI_] {oci_logger,,72} ---- ERLOCI PORT PROCESS LOGGER ----
[error] GenServer :"data-source:c3995bc9-6db5-4af3-915b-8f3373a58367" terminating
** (ArgumentError) argument error: [{:erlang, :apply, [{:oci_logger, #PID<0.2627.0>}, :accept, []], []}, {:oci_port, :init, 1, [file: '/Code/my_app/deps/erloci/src/oci_port.erl', line: 240]}, {:gen_server, :init_it, 2, [file: 'gen_server.erl', line: 374]}, {:gen_server, :init_it, 6, [file: 'gen_server.erl', line: 342]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 249]}]
    (erloci) /Code/my_app/deps/erloci/src/erloci.erl:60: :erloci.new/2
@c-bik c-bik self-assigned this Jul 20, 2019
@c-bik
Copy link
Member

c-bik commented Jul 20, 2019

@whitepaperclip Thanks for using erloci I hope it has served you satisfactorily so far. It seems like you are trying to upgrade to OTP 22.

However, we are depectaing erloci for the following primary reasons:

  • port presents design bottle-neck
  • the custom erlang term parsing is now obsolete (doesn't support map etc)
  • high maintenence effort
  • complexities of interfacing directly with OCI APIs (ODPI-C presents a much simpler interface)

In stead we are now foucused on oranif which is based on ODPI-C and design in easy to maintain and extend fashion.

Oracle C and C++ Interfaces and New Product Launch: Oracle Database Programming Interface for C (ODPI-C) will tell you why did we decide to switch from OCI to ODPI-C.

In addition to Oracle API changes, oranif is also targeted to much higher performance (NIF in stead of port driver etc).

We have stopped all development and bug fixing activities and not taking any pull requests either so no more erlang upgrades either.

oranif is functional and already is in production. It has limited API support but full test coverage. We are working on usage and documantation of oranif. If you need help with oranif usage or specific API support please create an issue to oranif.

@cjbj
Copy link

cjbj commented Jul 20, 2019

due to lack of support on OCI APIs from Oracle.

For the record, OCI is officially supported by Oracle and is widely used. But I agree ODPI-C (which sits on OCI) will be easier to use, and I'm excited about oranif. And @anthony-tuininga and myself are available to answer ad-hoc questions on either OCI or ODPI-C.

@c-bik
Copy link
Member

c-bik commented Jul 20, 2019

due to lack of support on OCI APIs from Oracle.

For the record, OCI is officially supported by Oracle and is widely used.

@cjbj My apologies. Corrected above.

@cjbj
Copy link

cjbj commented Jul 20, 2019

@c-bik thanks. I knew what you meant but didn't want others to get the wrong impression.

@nkezhaya
Copy link
Contributor Author

@c-bik @cjbj The new NIF library looks fantastic! I'm going to read through the source in the next few days and try to get a working implementation on my end. Let me know if you want help with documentation. I may publish an Elixir wrapper for it.

@c-bik
Copy link
Member

c-bik commented Jul 21, 2019

@whitepaperclip Thanks and very happy to hear you like to contribute. Please let us know what would you like to have in doc / API support we can start with those. All PR are more than welcome.

Additionally, it will be great to have some performance benchmarking to compare between erloci and oranif.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants