Thursday, April 23, 2015

Thoth Gateway moved to GitHub, now supports Apex 5.0

As with the Alexandria PL/SQL Utility Library, the source code for the Thoth Gateway, a mod_plsql and Apex Listener/ORDS equivalent for Microsoft IIS, now has a new home on GitHub. This should make it easy for anyone to look at and perhaps contribute to the code.

If you don't care about the source code, you can head straight to the releases page to download just the binaries. Updated installation instructions for IIS 8 will be forthcoming, but deploying the Thoth Gateway is really as easy as just dropping the binaries into the wwwroot and using IIS Manager to turn the folder into an application.

Also, there were a few minor tweaks needed to support Apex 5.0. As far as I can tell from my own testing, everything now works, but do let me know if you have any issues.

Download the lastest version of the Thoth Gateway with Apex 5.0 support here.


Marco Wolschke said...

Thank you! It works fine.

Thomas said...

That's great! I really appreciate that you keep Thoth up to date with new versions of APEX and IIS. We have been using Thoth a couple of years now, and it works perfectly!

Emanuele said...

Is there anyone that could help me?
I've downloaded the latest version 1.4.1 but if I try to follow the doc on your website seems that are referring to previous(and probably with different structure) versions of thoth
Many thanks in advance

Morten Braten said...

@Emanuele: Note that with version 1.4.0 and later, you no longer need an Oracle client so the installation is as easy as putting the binaries in a folder and turning that folder into an ASP.NET application. See this post for more info:

Let me know which steps you took to install, and what error message you got, then we can take it from there.

- Morten

Emanuele said...

I've download thoth-gateway 1.4; I've windows server 2008 with IIS7
What do I have to do?
I've copied the download files into c:\inetpub\wwwroot\thoth
Now what?? The installation guide says something about install folder, create virtual directory and seems it's referring to something old (previous version?)

Could you please figure me out all the steps needed to let thoth working?

Frédéric Boudineau said...

Great development, is it still maintained? do you have a configuration documentation
Best regards

Anonymous said...

Downloaded v1.4.1 and installed under IIS 7.5 on 2008R2 server. Works beautifully and can access apex v4.2 on oracle 10.2 (remotely) and apex v5.0.3 on oracle xe 11g (locally).

But i need to run an app other than f?p=4550 (developed under apex, sid=102). Can someone advise on how to format the DatabaseConnectString parm? i tried different formats but getting either syntax errors or that tns can not resolve. Also, i'm a newbie to Oracle.

Any advise will be greatly appreciated.

Morten Braten said...

@Frédéric: The project is still maintained. Look in the /doc/installation_guide.htm document for how to configure. Note that as of version 1.4.x you can skip step 2 (install ODP.NET) as it now uses the ODP.NET Managed Driver which is just a single DLL which lives in the same folder as the application (Thoth Gateway) itself.

- Morten

Morten Braten said...

@Anonymous: Great to hear that you got it working. But I think you are confusing the concepts of database connections and APEX application IDs. In your web.config file you add a "DAD" (Database Access Descriptor) for each database you want to connect to. The "SID" is the database identifier (typically "XE" for Oracle Express Edition, and default "ORCL" for Oracle Standard/Enterprise Edition). In your case you have two databases, so you need to add two different DAD sections to the web.config. The name of the DAD becomes the second part of the URL, after the folder you put the Thoth Gateway in. For example, if you put the Thoth Gateway in a folder called "pls" and you added a DAD called "mydad", then the URL to access that database would be http://myserver/pls/mydad/

Once you have set up the DAD you can run any APEX application in that database. Each APEX application has its own ID, starting with 100 for the first application you make, then 101, 102 and so on. The APEX Application Builder that you use to create APEX applications is itself created in APEX, and it has the number 4550. To access any APEX application you just add the ID to the end of the URL, like this: http://myserver/pls/mydad/f?p=12345

Key point: You don't need to change the DatabaseConnectString to run other APEX applications, you just change the ID of the application in the URL. You can read more about the concepts here:

Hope this helps,

- Morten

Anonymous said...

Morten, thank you very much for this detailed and simple explanation. It makes a lot of sense, even for an Oracle newbie like me.

After trying your suggestions, i have been able to access 3 apps on our production oracle server, 2 of which use AD authentication.

Again, many thanks for your explanation and quick reply. And many thanks for the Thoth gateway too!!!


Frédéric Boudineau said...

I am convinced that Thoth Gateway has a huge potential.
In my case the same IIS server can manage the main APEX application and others ASP or WCF .Net module. Great!
With ords, you need GlassFish, Windows WCFService and NGINX as proxy. Really complicated.

I will look on features specific to ords like restful.

Haris said...

Can this gateway run on .NET Core under Linux

Morten Braten said...

@Haris: Good question. It depends on how much of the ASP.NET request pipeline is supported in .NET Core, and also if the Oracle ODP.NET Managed Driver is supported on .NET Core. Also, you would need to host the gateway in a server process. On Windows with regular .NET web apps, this is IIS. On Linux with .NET Core, this would be the "Kestrel" webserver behind an Apache or Nginx proxy. Unless you want to do some customization of the Thoth source code using .NET on Linux, why not just use ORDS on Tomcat behind Apache or Nginx?

- Morten