Forum OpenACS Development: Re: OpenACS 5.9.0 and Oracle 12c

Collapse
Posted by Brian Fenton on
As I had a very small window to do this job, I ended up using 5.9.0 to try out my proof of concept. OpenACS 5.9.1 seems to have some changes to ACS_REL_TYPES that would require more time to make the Oracle changes than I have available at the moment (but I will get to it once we proceed with this project).

The good news is that I managed to get OpenACS 5.9.0 up and running with Oracle 12c on Windows 2012 and using Maurizio's version of Naviserver. I had to fix a few things and also noticed some issues, all of which I will post on the bug tracker.

Good job all around, and looking forward to further developments with the community!

Brian

Collapse
Posted by Maurizio Martignano on
Hello Brian, good job.

Did you modify Naviserver code, or Nsoracle?
If so, would it be possible to get your mods?

TIA,
Maurizio

Collapse
Posted by Brian Fenton on
Hi Maurizio

it is you who has done a good job! I didn't have to modify anything, it worked out of the box. I used the nsoracle.dll that you include in your release.

There is one issue of concern I noticed yesterday evening, that I need to spend more time looking at. Calls to ::util::http::get are failing.
See this bug https://openacs.org/bugtracker/openacs/bug?format=table&bug_number=3307

thanks
Brian

Collapse
Posted by Maurizio Martignano on
Ah... Ok. Thank you.
While waiting for the bug fix, where i need to do some investigation, you can try something like this:
[exec wget https://openacs.org]

Kind of awkward... but it should work...

Maurizio

Collapse
Posted by Antonio Pisano on
Another way to circumvent the issue for the time being could be to try the curl implementation of HTTP client, e.g. util::http::get -preference curl -url https://openacs.org

For reference see https://openacs.org/api-doc/proc-view?proc=util%3a%3ahttp%3a%3aget&source_p=1

Collapse
Posted by Brian Fenton on
Thank you Maurizio. Actually what is the canonical way to make a HTTP call with Naviserver? In our old AOLserver codebase, we have a mix of calls to ns_httpget, ad_httpget, and more recently calls to ns_http (this is the one that works best for us on Windows 2008).
Collapse
Posted by Maurizio Martignano on
I have fixed the issue.

This is the change in the code:

if (connect(sock, saPtr, Ns_SockaddrGetSockLen(saPtr)) != 0) {
int err = ns_sockerrno;

#ifndef _WIN32
if (!async || (err != EINPROGRESS && err != EWOULDBLOCK)) {
#else
if (!async || (err != WSAEWOULDBLOCK)) {
#endif
ns_sockclose(sock);
Ns_LogSockaddr(Warning, "SockConnect fails", saPtr);
sock = NS_INVALID_SOCKET;

The mod will be available in next version of my distribution.
Over the weekend.

Collapse
Posted by Antonio Pisano on
Regarding this, ns_http is now the preferred low-level interface for HTTP client functionalities. A higher level interface, that deprecates all the "old school" procs like ad_httpget and such, you can find in [1] and [2].

These are basically wrappers around the API that make easier to issue the requests, also providing backward compatibility with Aolserver by using curl.

Hope this helps

Antonio

[1] https://openacs.org/api-doc/proc-view?proc=util%3a%3ahttp%3a%3aget&source_p=1
[2] https://openacs.org/api-doc/proc-view?proc=util%3a%3ahttp%3a%3apost&source_p=1

Collapse
Posted by Brian Fenton on
Thanks Antonio!
Collapse
Posted by Gustaf Neumann on
Dear Brian,

many thanks for the time invested and the fixes. Some of these can be probably included in the forthcoming release, some of these might require more changes. On some of the changes, you provided a fixed version for the create-scripts, but it is not clear, how to deal with these in upgrades. However since we have this nicely in the tracker, we can improve stepwise.

Concerning the rel-types: you are referring probably to these changes:

https://openacs.org/forums/message-view?message_id=5330734
https://openacs.org/forums/message-view?message_id=4031049

by these postings, the documentation and intentions should be clear. The PostgreSQL version appears to work nicely.

Good job and many thanks!
-g

Collapse
Posted by Brian Fenton on
Hi Gustaf

good point about the upgrade scripts. Yes, I'll sort those out.

Thanks for the rel-types info. When I go to look at 591, I'll follow up on that.

thanks for all your great work!
Brian

Collapse
Posted by Antonio Pisano on
I really appreciate your effort Brain! Unfortunately you may find out issues like the one on ACSMail Lite you have kindly reported (my bad) that are due to our lack of an Oracle test framework. Therefore, modifications on my side that had to do with the Oracle codebase were conducted on a best-effort basis and will probably need some testing/rework.

Please keep up your reporting and I will do my best to give you insights and the help I am able to provide on this. It is very nice to see somebody willing to revamp the Oracle side of the project!

Collapse
Posted by Brian Fenton on
Grazie mille, Antonio! That's very helpful of you, and really, there is nothing to apologise for. That's just how it is.