Broken query results with oracle instant client over occi - oracle

I am writing an occi based MFC Win32 application and wanted to deploy it with the oracle instant client in version 11.2.
The whole software works fine with the full client. With the instant client, the same queries work as well - but in some cases I get broken results (wrong data) - with no error message. In these cases, quite large HUGEBLOB entries are selected.
Has somebody experienced something similar? It would make me happy not to need the oracle full client.

Related

Oracle instant client status

I saw some presentations about a very promising product "Oracle Instant Client".
Could you tell me what is the status of this product?
Is it really used?
How is the support from Oracle?
It seems to be kind of equivalent to the thin driver for Java. Is it really something as simple as unzip, modify 1 or 2 environment variables and run your client application?
http://www.oracle.com/technetwork/database/features/instant-client/index-100365.html
http://www.dbatoolz.com/t/installing-oracle-instantclient-basic-and-instantclient-sqlplus-on-win32.html
Thanks & regards
Alexandre
Oracle Instant Client is still an Product needed to be installed, it just comes with less features i.e. SQL Plus.
You can add individual components per demand.
The Instant Client is about 60 MB in size, compare to an Full client about 600 MB up to 1 GB depends on features you add there on top.
For simple db connection of an Client App, Instant Client is fully capable to fulfil this. The Idea is / was to add some security, since advanced users could do an connection threat to your DB.
It seems to be kind of equivalent to the thin driver for Java. Is it really something as simple as unzip, modify 1 or 2 environment variables and run your client application?
Pretty much, though it depends what your client application is. And which bits you download. If you install all of the packages then it includes the JDBC drivers (thin and OCI), libraries for OCCI apps, SQL*Plus... well, you can see all that from the downloads list. It's a smaller, simpler version of the full client, and doesn't need to be installed, just unzipped, which makes it easier to distribute too.
If you have the full Server or Client software installed then there's not much benefit in having the instant client as well; unless you need different driver versions, or you want to remove execute permissions from the full Oracle binaries for some reason. But if you have a new box that needs to access a remote DB then it gives you everything you need, simply. (Not quite instantly, but not far off).
It's been around since 10g and is fully supported, but like everything else, only if you have a support contract. It's certinly still supported in the sense that there is a new version to go with Oracle 12c.
In some respects it's very much just for client use though. For example, we develop Pro*C modules that we have to compile with the full version, but then we can happily execute them on a server that only has the instant client, to access a remote DB. That's not an issue for Java though.

ORA-01017 while connecting with Zeos library

I'm doing and application in which I need to establish a connection with an Oracle database. I was already capable of doing that perfectly with a software using Qt and the QOCIDriver, which means I both have the correct data to connect (username, password, etc.), as well as that my computer is capable of doing this correctly (i.e., the Oracle Client is correctly installed, etc.).
But now, when I moved to do the same in my 'Borland C++ Builder 6 application', using the Zeos library, I couldn't, with the Oracle database returning the error ORA-01017.
I ask myself what could be happening of wrong... I did a research on the web regarding this error and I found out that this is a particular message for a multitude of possible errors, most of which I'm not in position to check and correct - the database is located in a remote, private-access computer -, while at the same time without any clue about which of them is more probably true. Since I have quite a little time to solve this problem, any help indicating the most probable solution would be very thanked :)
Notice that I use the Zeos library to perform connections with a MySQL database with success - which means I know how to correctly program the library to perform such connections as well that the files used by Zeos library to do the connection are not too much old, minimizing the probability of this being a problem related to file incompatibility. The problem is happening only and particularly with the Oracle database.
Thanks,
Momergil

How does Node.JS and/or Meteor get a callback from the database when a 3rd party software update the database

I would like to use Meteor (Node.JS) to develop an application that will be used by 3,000+ concurrent users on a large size database.
I have looked at the nice examples and the idea to push changed data to the clients is very nice and very useful, but before I start the development I want to be sure how it works behind the scenes to be sure that when I have the application running with all these users it work fast with standard hardware.
I also require this to use Oracle as a database, but not sure that it is supported and if not, what are the requirements from an Oracle package to enable this facility.
I think that the server is having an active on going non-blocking query on the OPLOG table in mongodb and that is how we get the callback for all the changes in the database. Is that correct ? if so, is there a similar way to do it in Oracle ?
Thanks Roni.
I also require this to use Oracle as a database, but not sure that it is supported and if not, what are the requirements from an Oracle package to enable this facility.
Nope, meteor is currently mongo-only as they have implemented an in-browser library called minimongo. My guess is this project will never support oracle, but who knows. There is no mention of oracle support on the meteor project roadmap
Just happened to come across this question while searching at google.
However, if there are no native solutions. We can always figure out a way for a medium language to issue publishing.
Example Case:
Python will be used for synchronising data between Mongodb and Oracle (24/7 operation using cx_Oracle and MongoDB drivers from python)
Meteor Server will keep watch on what to publish
Meteor clients/browsers that subscribed to the channel that will be updated with oracle data.

Is it a good idea to use Oracle 11g Client against a 10g database for Oracle Advanced Queuing?

I am developing some integration software for a client using amongst other things, C#, NServiceBus and Oracle 10g (client and server). The requirement is that I need to develop a new plugin for NServiceBus to create an implementation of ITransport which is the queuing mechanism for the messages. So Oracle Advanced Queuing is used for this. I have done quite a bit of work writing code for advanced queuing in Oracle 11g (client and server), but looking at ODP.Net 10g it seems that the queuing support is lacking or non-existent so that may prove to be problematic.
My question is this:
I know that you can use the 11g client against a 10g database server, but is it a good idea for Oracle Advanced Queuing and are there any gotchas I need to know about?
Many thanks.
Is it a good idea for Advanced Queueing? Well, I don't see why not, since 11g client connecting to 10g server is supported.
I don't imagine that AQ would pose any unique problem, specific to AQ. If you think about it, AQ is just PL/SQL calls that interact with tables under the covers. There's really nothing different at the client side, than there is with any other Oracle code.
So, I say go for it. But, as always: Test, test test. And then test some more.
But, in principle, I don't see a problem.
You may want to check out the NServiceBus-Contrib project, as there is an AQS transport there for 2.x.

Alternatives to connect to ORACLE database server without install the Oracle client

i am looking for an Delphi component to connect to an ORACLE database server in an direct way without install the oracle client.
i knew the Oracle Data Access (ODAC) from DevArt. there are any other component with this capability?
ODAC offers two connection modes to
the Oracle server: connection through
the Oracle Call Interface in Client
mode and direct connection over TCP/IP
in Direct mode. ODAC-based database
applications are easy to deploy, do
not require installation of other data
provider layers.
Thanks in advance.
No, there is no other Delphi Win32 libraries allowing to connect to Oracle without the installed Oracle Client. And, IMHO, that is correct, because:
OCI (Oracle Call Interface) is quite complex piece of software. I will say, it is most complex closed sourced DBMS Call Level Interface in the World. And it is changing from version to version. Oracle has official rule - the Oracle Client v X supports Oracle Server v X-1 ... X+1. Because even such company as Oracle, dont want to spend resources to support and test all the protocol nuances across all possible versions. So, I dont think, that DevArt ever will implement 99.9% stable Oracle SQL*Net protocol implementation. And the INet posts proof that ...
AFAIK, the ODAC Net mode does not support some of the Oracle Client important features and has some important limitations. Although it works well for simple data access scenarious.
If you will purchase Oracle support, then it will decline all your support requests, if they will know, that you are not using official client software. That is just Oracle rule.
If you dislike to install and tune the full scale Oracle Client, then you can just use Oracle Instant Client. Which does not require install or setup procedure. And you will be in safety in case of the different data access scenarious and Oracle Server versions.
PS: Although I may be considered as a biased person :)
There is also Allround Automations Direct Oracle Access, it do require Oracle SQL*Net or Net8. but is a brilliant component suite.
The only solution I found is ODAC, and it's working very nice, I have been using it since years without getting any problem with the direct mode.
there's some limitation with the direct mode, but most of users will not get these limitations with their application.

Resources