Oracle reserved and non-reserved keywords
Hello,
I'm looking for a list of reserved and non-reserved keywords for all Oracle versions starting from 9.
I think Oracle starts at R1, right? So the versions needed would be:
9.1, 9.2
10.1, 10.2 and
11.1
I found lists of keywords querying Oracle view V$RESERVED_WORDS
http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2048.htm#REFRN30204
here:
http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14200/ap_keywd.htm
However, this is only for version 10.2 and it contains only reserved keywords.
I need a list for every maintenance/minor version. This list must contain all keywords in Oracle PL/SQL, not just the reserved ones, but also those which shouldn't be used in certain contexts described by the V$RESERVED_WORDS view (former link) -> probably reserved = 'N'.
Since I don't own a copy of Oracle and definitely not of every minor version, does anyone know where to obtain such lists?
You might want to do me a favor and query that view for me... ;-) (you can send the output to "k w u t z k e AT w e b DOT d e" ... don't forget to mention the version)
From what the view tells me, the SQL statements to query are:
For reserved words:
select keyword from v$reserved_words where reserved='Y' order by keyword;
For all other non-reserved words:
select keyword from v$reserved_words where reserved='N' order by keyword;
Are there any keywords/entities that are neither reserved='Y' nor reserved='N'?
Can anyone help on this issue please?
TIA,
Karsten
Not sure about differences between specific versions but the easy way to get reserved words is in SQL*Plus...
SQL> help reserved words
RESERVED WORDS (PL/SQL)
PL/SQL Reserved Words have special meaning in PL/SQL, and may not be used
for identifier names (unless enclosed in "quotes").
An asterisk (*) indicates words are also SQL Reserved Words.
ALL* DESC* JAVA PACKAGE SUBTYPE
ALTER* DISTINCT* LEVEL* PARTITION SUCCESSFUL*
AND* DO LIKE* PCTFREE* SUM
ANY* DROP* LIMITED PLS_INTEGER SYNONYM*
ARRAY ELSE* LOCK* POSITIVE SYSDATE*
AS* ELSIF LONG* POSITIVEN TABLE*
ASC* END LOOP PRAGMA THEN*
AT EXCEPTION MAX PRIOR* TIME
AUTHID EXCLUSIVE* MIN PRIVATE TIMESTAMP
AVG EXECUTE MINUS* PROCEDURE TIMEZONE_ABBR
BEGIN EXISTS* MINUTE PUBLIC* TIMEZONE_HOUR
BETWEEN* EXIT MLSLABEL* RAISE TIMEZONE_MINUTE
BINARY_INTEGER EXTENDS MOD RANGE TIMEZONE_REGION
BODY EXTRACT MODE* RAW* TO*
BOOLEAN FALSE MONTH REAL TRIGGER*
BULK FETCH NATURAL RECORD TRUE
BY* FLOAT* NATURALN REF TYPE
CHAR* FOR* NEW RELEASE UI
CHAR_BASE FORALL NEXTVAL RETURN UNION*
CHECK* FROM* NOCOPY REVERSE UNIQUE*
CLOSE FUNCTION NOT* ROLLBACK UPDATE*
CLUSTER* GOTO NOWAIT* ROW* USE
COALESCE GROUP* NULL* ROWID* USER*
COLLECT HAVING* NULLIF ROWNUM* VALIDATE*
COMMENT* HEAP NUMBER* ROWTYPE VALUES*
COMMIT HOUR NUMBER_BASE SAVEPOINT VARCHAR*
COMPRESS* IF OCIROWID SECOND VARCHAR2*
CONNECT* IMMEDIATE* OF* SELECT* VARIANCE
CONSTANT IN* ON* SEPERATE VIEW*
CREATE* INDEX* OPAQUE SET* WHEN
CURRENT* INDICATOR OPEN SHARE* WHENEVER*
CURRVAL INSERT* OPERATOR SMALLINT* WHERE*
CURSOR INTEGER* OPTION* SPACE WHILE
DATE* INTERFACE OR* SQL WITH*
DAY INTERSECT* ORDER* SQLCODE WORK
DECIMAL* INTERVAL ORGANIZATION SQLERRM WRITE
DECLARE INTO* OTHERS START* YEAR
DEFAULT* IS* OUT STDDEV ZONE
DELETE* ISOLATION
RESERVED WORDS (SQL)
SQL Reserved Words have special meaning in SQL, and may not be used for
identifier names unless enclosed in "quotes".
An asterisk (*) indicates words are also ANSI Reserved Words.
Oracle prefixes implicitly generated schema object and subobject names
with "SYS_". To avoid name resolution conflict, Oracle discourages you
from prefixing your schema object and subobject names with "SYS_".
ACCESS DEFAULT* INTEGER* ONLINE START
ADD* DELETE* INTERSECT* OPTION* SUCCESSFUL
ALL* DESC* INTO* OR* SYNONYM
ALTER* DISTINCT* IS* ORDER* SYSDATE
AND* DROP* LEVEL* PCTFREE TABLE*
ANY* ELSE* LIKE* PRIOR* THEN*
AS* EXCLUSIVE LOCK PRIVILEGES* TO*
ASC* EXISTS LONG PUBLIC* TRIGGER
AUDIT FILE MAXEXTENTS RAW UID
BETWEEN* FLOAT* MINUS RENAME UNION*
BY* FOR* MLSLABEL RESOURCE UNIQUE*
CHAR* FROM* MODE REVOKE* UPDATE*
CHECK* GRANT* MODIFY ROW USER*
CLUSTER GROUP* NOAUDIT ROWID VALIDATE
COLUMN HAVING* NOCOMPRESS ROWNUM VALUES*
COMMENT IDENTIFIED NOT* ROWS* VARCHAR*
COMPRESS IMMEDIATE* NOWAIT SELECT* VARCHAR2
CONNECT* IN* NULL* SESSION* VIEW*
CREATE* INCREMENT NUMBER SET* WHENEVER*
CURRENT* INDEX OF* SHARE WHERE
DATE* INITIAL OFFLINE SIZE* WITH*
DECIMAL* INSERT* ON* SMALLINT*
SQL>If you haven't got oracle then I'm not sure where you're going to find out all the minor differences I'm afraid.
Similar Messages
-
Oracle 10G R2: Cannot access a table whose name is a reserved keyword
Hello,
Oracle 10G R2 database being accessed using Oracle 10G thin driver in Java.
There is a table named GROUP in the db - GROUP is a reserved keyword of course.
When I execute the statement (after getting the database metadata object from a java.sql.Connection to the DB):
oracle.jdbc.OracleDatabaseMetaData.getIndexInfo(null, "MYDB", "GROUP", false, true)
I get:
Exception in thread "main" java.sql.SQLException: ORA-00903: invalid table name
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1160)
at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1606)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1571)
at oracle.jdbc.OracleDatabaseMetaData.getIndexInfo(OracleDatabaseMetaData.java:3485)
When I execute the statement:
oracle.jdbc.OracleDatabaseMetaData.getIndexInfo(null, "MYDB", "\"GROUP\"", false, true)
the result set is empty
What is the correct way for me to get the index info from the table named GROUP?
Thanks,
Sundeepuser5486925 wrote:
oracle.jdbc.OracleDatabaseMetaData.getIndexInfo(null, "MYDB", "\"GROUP\"", false, true)
the result set is empty
Which would suggest you are using the correct name as a quoted identifier. Presumably the code you are using works for other tables. But you might try variations in case.
You can also query the database directly to get the index information rather than using the metadata.
What is the correct way for me to get the index info from the table named GROUP?The correct way is to not use reserved words. -
Incomprehensible Oracle Reserved Word Error
I'm trying to create a Table for a new application and I keep getting this error message:
1 error has occurred
The identified column name is an Oracle reserved word. Please choose another name.
Unfortunately, it doesn't identify a column as containing a reserved word. I tried googling for a list of Oracle Reserved Words, Oracle Keywords, and PL/SQL Reserved Words; but none of them match the column names in my table. My column names are:
PROJECT NAME (Aliases)
(C)USTOMER REQUEST or (IT) REQUEST
Priority (1= high)
PROJECT STATUS
PROJECT MANAGER
LAST STATUS
Link to Status
START DATE
ESTIMATED COMPLETION
NOTES
Report on Time?
Business Analyst
Technical Lead
Business Apps
DBA_Name
Systems
Network
NOC
CSC
Training
Communications
SME
Super User
Contracts
ERP
DBA_Name used to be DBA, which is a keyword, but when I changed it to DBA_Name, i got the same error. Please help.
Steve in Raleigh NCThanks. I'm using Oracle 11g. I think what you're suggesting would work, if the objective is to create an empty table and then populate it with data.
However, what I'm trying to do is import a spreadsheet into APEX as a table, after which I shall build an application on that. If I do it your way, I'll have to key all the spreadsheet data in after creation, creating the possibility of keyed errors, which would require proof-reading. I'd prefer not to do that.
This morning, before returning to this thread, I was able to import the spreadsheet by changing all the column names to the corresponding Excel column heads: A, B, C and so on. When I went to SQL workshop to rename the columns, I found only 10 had been imported. There are 22 columns in the spreadsheet, most of them populated, and we need them all.
I believe I can still use the table I have created. I can add the extra 12 columns now, one at a time, and populate them by typing, if I must.
However, if there's some constraint or constant I can alter to import all 22 columns with all the information in one pass, I would appreciate it. There are 53 rows. Keying 12 columns for all 53 would be something of a pain.
Steve the n00b in Raleigh NC -
My XML document has the tag <DATE>. (an Oracle reserved word)
My Oracle table has the column DATE. This was creating by enclosing the column name with quotes when creating the table.
I assumed that a putXML would work since the SQL Reference manual says that Oracle considers DATE and "DATE" to be the same thing.
However, when I run putXML, I get the error message "missing SELECT keyword encountered during processing ROW element 1".
Does this XML file need to be preprocessed by XSLT to alter the DATE element, does getXML have a bug, or did I do something wrong?
Thanks.Scott,
<p>
Yeah I know it is a bug but what I was not sure of is whether Product Development knew about it or not.
<p>
I was just letting Product Development know about it in case they did not already.
<p>
<b>Is there, or should there be, another (better) way of reporting bugs with Application Express to product development.</b>
<p>
Chris -
Hi,
I am porting a program to use Oracle 10g database. (previously mssql server).
I noted that some existing sql statements becomes errorneous after porting.
Examples below.
select '' as number from log;
select '' as level from log;
I get the sql error:
ORA-00923: FROM keyword not found where expected
These statements are parsed perfectly in MSSQL server.
Did i step onto something forbidden in oracle?
Please advice.The column alias specification can't be used tougether with '*' symbol but
only with particular column:
SQL> desc t
Name Null? Type
ID NUMBER
SQL> select id as nm from t;
no rows selected
SQL> select * as nm from t;
select * as nm from t
ERROR at line 1:
ORA-00923: FROM keyword not found where expected As for the rest of Rod's post it is quite correct - number and level
are reserved keywords and can't be used as column aliases.
Rgds. -
Oracle Reserved Words in EJB Implementations
Hello Everybody!
Suppose there is a table in Oracle , say Account which has a column, say comment. comment is a reserved word in Oracle. I would like to know how Oracle reserved words are handled in EJB implementation. For example, suppose there is an enterprise application that accesses such a table using CMP beans, how would we specify the <field-map>
<field-map>
<cmp-field>comment</cmp-field>
<dbms-column>COMMENT</dbms-column>
</field-map>
This doesnt work because COMMENT is a reserved word in Oracle. In Oracle,
if we use comment as a column name, it has to be represented in double quotations.
for example, this select query doesnt work
select COMMENT from account;
these select queries works
select "COMMENT" from account;
select A."COMMENT" from account A;
Regarding the current EJB implementations, the question is whether they support Oracle reserved words in their mappings??
"COMMENT"s welcome
Thanks!
Manu Ramakrishnan>
This doesnt work because COMMENT is a reserved word in
Oracle. In Oracle,
if we use comment as a column name, it has to be
represented in double quotations.
Did you try it?
Did you try it with double quotes?
The specs I looked at do not discuss this(jdbc, ejb, j2ee.) The ejb spec reserves as part of EJB QL some standard ANSI SQL reserved words and specifically suggests that other ANSI SQL reserved words should not be used.
And if I am reading the EJB QL section correctly identifiers (which would be a table, field names) do not allow quoted identifiers. Or at least they specifically do not allow fields with, for example, a space. This sort of name is specifically allowed for in ANSI SQL and has been since the first version of ANSI SQL. They also do not allow for case sensitive names, which again is allowed in ANSI SQL as part of a quoted identifier.
That suggests to me that you use reserved words that either you going to be using a non-J2EE feature of a container or it simply won't work in the first place. -
Timestamp keyword or reserved keyword
This is actualy a definition question...
consider a table having a timestamp column named timestamp and the v$reserved_words view in oracle 10.
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
CREATE TABLE TF
(timestamp timestamp);(timestamp is a keyword according to the v$reserved_words_view)
and a procedure to delete data from it
BEGIN
DELETE TF;
END;
/produces this output
delete tf;
ERROR at line 2:
ORA-06550: line 2, column 8:
PL/SQL: ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-320: the declaration of the type of this expression is
incomplete or malformed
ORA-06550: line 2, column 1:
PL/SQL: SQL Statement ignoredThis fails to compile.... I would think timestamp is a reserved keyword instead of a normal keyword.Zpuit wrote:
Lukasz,
I think it should have replied this:
SQL> SELECT * FROM v$reserved_words WHERE keyword = 'TIMESTAMP';
KEYWORD LENGTH R R R R D
TIMESTAMP 9 Y N N N Nand i already know this falls into a hair-splitting category of things. The reservered words view contains both keywords and reserved keywords. According to the definition (as I interpret it) Reserved keywords cannot be used in table and columnnames. Keywords should not be used as identifiers and
keywords might be promoted to reserved keywords in a future release (which is the question I am asking but for this release). It only fails in PLSQL, I know it works fine in SQL.Bottom line: never user either reserved words or key words as identifiers. Regardless of how oracle handles it, it just makes for confusion when reading and debugging code. If shops had strong naming standards (an idea that seems to have gone the way of the buggy whip) this would not even be an issue. -
Can i create any procedure or function inside a oracle reserve package?
Hi!
Can i create any procedure or function inside a oracle reserve package. Suppose, I want to create a function called x in the dbms_output package. Can i do that? Or can i extend the features of this package and create/derived a function from it like we extend any class in JAVA. I'm not sure - whether this is at all possible. I'll be waiting for your reply.
Thanks in advance.
Satyaki De.No, but you can write a wrapper package and use that instead of using the Built-In package directly. So, instead of calling DBMS_OUTPUT, you call your own Package.
Steven Feuerstein wrote a wrapper for DBMS_OUTPUT, called P:
Re: DBMS_OUTPUT.PUT_LINE -
Create App From Spreadsheet: "column name is an Oracle reserved word"
I'm creating an App from a spreadsheet on apex.oracle.com (3.0.0.00.20 at time of writing) and receiving the error "The identified column name is an Oracle reserved word. Please choose another name."
I've tried adding an underscore to the end of each column name in order to avoid having to check every column name (yup, lazy) but that didn't remove the error, nor is any column name identified by the interface.
Thoughts?Hi David,
There was a bug at one time where reserved words were not being checked properly when creating columns. A particular problem related to names beginning with "SYS".
Try adding the underscore in front of the column name.
Regards
Andy -
CMP table name using reserved keyword
Hello,
I am migrating an existing application from JBoss to WebLogic.
One of the issues that came up is that there are three tables
named User, Transaction, Identity which in case of SQL Server
happen to be reserved keywords. In JBoss descriptors we used
to escape those names with square brackets and it worked fine.
I can not seem to find a way to make it work in WebLogic. If
I escape them as mentioned, the appc compilation fails. If I
don't - the application fails to deploy not being able to find
those tables.
There must be a way to specify that the app server should
escape those table names. Can You help?
KlausHello. Thx for response.
I have tried something like
exec 'INSERT INTO "tuser"."dam.test.db::tuser.procedures.search_result" SELECT '''||table_name||''' AS TABLE_NAME, '||column_name||' AS ID, SCORE() AS SCORE FROM '||table_name||' WHERE contains(*, '''||keyword||''', fuzzy(0.5))';
but here i have "tuser"."dam.test.db::tuser.procedures.search_result" created before the execution. What i really want is to make it as a local variable. Something like:
DECLARE schema_name NVARCHAR(300) := 'tuser';
indexed_tables = SELECT DISTINCT "TABLE_NAME" FROM "SYS"."FULLTEXT_INDEXES" WHERE "SCHEMA_NAME" = :schema_name ;
but i can not transform the top 'exec ...' statement into 'result = SELECT ...' because it always says that it can not pass the scalar value into the 'FROM ...' part. -
ORACLE SERVER AND UNIX TP MONITOR-2
제품 : ORACLE SERVER
작성날짜 : 1995-01-24
Subject: Oracle Server and UNIX Transaction Processing Monitors-2
Page(3/4)
This file contains commonly asked questions about Oracle7 Server and UNIX
Transaction Processing Monitors (TPMs). The topics covered in this article are
o Oracle Parallel Server and TP Monitors
o Oracle and DCE-based TP Monitors
o Other commonly asked questions
The questions answered in part 3 provide additional detail to the information
provided in part 1.
Oracle Parallel Server and TP Monitors
======================================
How does Oracle Parallel Server (OPS) work with TP Monitors?
If you are using Oracle-managed transactions, there are no special
considerations. But if you are using TPM-managed transactions, and
thus need to use the XA interface, then Oracle requires release 7.1.3
or later and a special version of the Distributed Lock Manager, called
the session-based lock manager. This version of the DLM is not yet
available for all platforms. To understand this restriction, let's take
a look at one of the technical details of XA.
The XA specification requires that the Resource Manager be able to
move a transaction from one process to another, and even to be
able to commit in a separate process. In Oracle, transactions are
attached to sessions, so that means that we also have to be able to
move sessions. Therefore, the session/transaction can't have any state
which is tied to a particular process. The first generation distributed
lock managers were all built to use the process id as the lock owner,
which doesn't work for locks which need to move with the transaction.
Oracle and DCE-based TP Monitors
================================
How does Oracle interface to the Encina TP monitor? To CICS/6000? I've
heard that they require OSF DCE facilities in order to run?
Oracle interfaces to Encina and CICS/6000 just as it does to any other
TP Monitor. The TP Monitor issues XA commands to control transactions, and
Oracle executes the commands. Encina and CICS/6000 do use DCE features for
their own operation. However, this use is transparent to the Oracle Server.
What DCE facilities can Oracle products take advantage of when working with
a DCE-based TP Monitor?
The two most commonly mentioned DCE features which might be useful
to Oracle users are multi-threading and security. We look at these in
the subsequent questions in this section.
Encina documentation suggests that a Resource Manager such as Oracle can
be either single-threaded or multi-threaded? Which way is Oracle XA
implemented?
The Oracle XA implementation is single-threaded, as is any Oracle client.
Within a single process, at most one thread can access Oracle at a time.
Does that mean that only a single Encina application can access an instance
of Oracle transactionally at any given moment?
No. Oracle XA is only single-threaded within a single application server
process. Multiple applications can access Oracle simultaneously using XA
by using different application processes. Encina allows
(1) serial reuse of a single server by different clients. There are
two options for this. The server can use long term reservation
but be defined to be in shared or concurrent access mode, which
allows the server to be used by another client as soon as an RPC
completes. Alternatively, the server can use default reservation
and exclusive mode, which allows the server to be used by another
client as soon as the current transaction ends.
(2) concurrent execution by multiple servers, even if they are accessing
the same Oracle database. These may be executing the same or different
procedures.
These two features should let you get as much concurrency as you need.
Why isn't the Oracle XA library multi-threaded?
The XA specification specifically states that its use of the phrase
"thread of control" means a process. If an RM were to multi-thread its
XA, it would be in violation of the specification. This restriction
was put place in because at the time the specification was written,
there were numerous thread packages: if the TM used one, the application
another, and perhaps the RM yet a third, there's no way it could work.
As threads standards settle down, the later versions of XA will probably
relax this restriction.
Will Oracle change if the XA specification changes?
Very likely. The exact time frame will of course depend on the priority of
all work items at that time.
Does Oracle use DCE security via the TP Monitors?
The integrity of the connection between a DCE TP Monitor client and DCE
TP Monitor server is protected by the DCE security functionality.
Theoretically, the TP Monitor could make the DCE-protected client security
information available to Oracle. Unfortunately, there's no standard way
for a TP Monitor to pass security information information to a Resource
Manager such as Oracle. Oracle is leading an effort to extend the X/Open
model to allow use of the security information provided by the Monitor.
In the meantime, the basic DCE security features such as encryption are
useful within TP Monitors.
Effective use of DCE security would normally also mean that the security of
the TP Monitor client be passed through the TP Monitor, through the Oracle
client (application server), to the Oracle Server, and possibly on
to other Oracle Servers through database links. The ability to transfer
security information to other processes, called delegation, is missing
in DCE version 1.0. DCE version 1.1, expected to emerge in late 1994,
has some delegation features. Oracle is examining these features to see
how they might be used.
Are there any special considerations for CICS/6000?
There are two:
(1) It is inefficient to run without XA. CICS/6000 is designed to
use XA. It uses XA so that the CICS server can log on to Oracle
when it starts, after which it makes that Oracle connection available
to any transaction it executes. If you don't use XA, the CICS server
does not itself log on to Oracle so each transaction has to log on
and log off - a very expensive mode of operation. Also, it is very
un-cics-like in that the application does the log{on,off} and also
commits - in a mainframe CICS database program CICS would implicitly
do these operations. Oracle does not recommend this mode because of the
performance penalty.
(2) CICS servers are generic and dynamically load application modules.
In order for these modules to access the Oracle connection made by
CICS, the applications must be built with a shared object version of
the Oracle libraries. This is an installation option on platforms which
support CICS/6000 and other products using its architecture such as
CICS 9000.
Other commonly asked questions
==============================
What other Resource Managers can be included in an Oracle XA transaction?
Several other relational database vendors have an XA implementation
available or in progress. There is an XA C-ISAM product from
Gresham Telecomputing. There are also Resource Managers contained
within some of the TP Monitors which can be coordinated in the same
transaction. For example, CICS/6000 has VSAM files and other data
stores, Encina has its RQS queuing system, and Tuxedo has its /Q queuing
system.
What is Recoverable Queuing Service (RQS) and how does it interoperate with
Oracle7 and Encina? What about /Q?
Recoverable Queuing Service is a feature provided by Encina which allows
transactional, distributed queuing (enqueue/dequeue). Tuxedo has a similar
product called /Q. Because these products are themselves coordinated by the
TM component of the TP Monitor, their queue operations are atomically
coordinated with with operations on XA Resource Managers such as Oracle7
Server. That is, they can atomically put something on one of their queues
and commit an Oracle transaction, then at some later time dequeue an
entry atomically with doing some other Oracle transaction. The queue
system guarantees that the message will not be lost or transmitted twice.
Can I mix TP Monitor applications with standard Oracle7 Server applications?
Yes, you can have existing Oracle applications connected to the database
with alongside TPM applications against the same database. The TPM does
not manage the whole database, just those transactions which are started
by the TPM. The Oracle Server will properly handle concurrency control
between the transactions managed by itself and those managed by the TPM.
Is Oracle planning to change its tools to be more suitable for TP Monitors?
With Oracle Procedure Builder 1.5, to be available with CDE2,
Oracle will provide a foreign function interface that allows you to
dynamically set up PL/SQL calls that access C functions. In other
words, you can access C routines in Windows DLLs from within your
PL/SQL procedures. This will allow PL/SQL under Windows easy access to
TP Monitor APIs.
Does Oracle7 Server itself use XA-compliant TPMs as the interface to
foreign RMs?
No, for this purpose Oracle Server uses the SQL*Connect products or the new
Transparent and Procedural Gateway products.
Does Oracle7 Server use XA to coordinate Oracle7-only distributed
transactions?
No, it uses an internal mechanism.
Can database links be used with XA?
If an Oracle7 database is running under XA, it can access other Oracle7
databases through database links, with some restrictions. First, the
access to the other database must use SQL*Net V2 and be running MTS.
Second, it must currently be to another Oracle7 database. Assuming those
restrictions, the Oracle 7 database can do distributed update to another
Oracle 7 database by using a database link, whether it is started by an
Oracle application or a TP Monitor application. The TPM will see Oracle
as only a single RM, but Oracle7 will propagate all the transaction
commands to the other database, including the two-phase commit. If
the transaction is started by a TP Monitor application and is using XA,
it can also update non-Oracle resources managed by the TPM. If it
is started from an Oracle application, it can only include resources
managed by Oracle.
Here's a sample configuration:
| TPM | | TPM |
| client | | client |
| |
| |
| TPM |
| |
| |
| Oracle | Forms, Forms, | Oracle | | non-XA | | XA |
| client | Plus, Plus, | client | | TPM | | TPM |
--------- Pro, Pro, --------- | server | | server |
| Financials, Financials, | |(note 1)| ----------
| etc. etc. | ---------- |
| | | |
| SQL | SQL | SQL | XA
| commit | commit | commit | commit
| | | |
| Oracle | | Oracle | | Oracle | | Oracle |
| server | | server | | server | | server |
| | | |
| | | |
| | | |
| Database 1 | | Database 2 |
| | | |
| A | A
| | dblink to database 1 | |
| ------------------------------------ |
| |
dblink to database 2
Note 1: Oracle will work having both XA and non-XA servers but some TPMs
may have restrictions on this.
Are multiple direct connections possible from a Pro* program?
Using XA, you can not only specify multiple direct connections to Oracle7
databases, you can also update them both in the SAME transaction. The
way to do this is to use a precompiler feature called a named database.
When you use a named database, you qualify the SQL statement with the
database name. For example, you write EXEC SQL AT dbname UPDATE emp ....
We have a complementary feature in the xa open string to let the user
associate the name with a particular RM instance, called the DB clause.
You will also want to use the SqlNet clause in the open string so you
can give the two different SIDs. This clause does not require the use of
the SQL*Net product, it is just a naming convention. For more information,
see Oracle7 Server for UNIX Administrator's Reference Guide.
Some TP Monitors may not support having multiple Resource Mangers in the
same server; check with the TPM vendor.
Is there any collateral available for XA or TP Monitors?
Oracle At Work 52684.0692
Oracle7 Server for UNIX Administrator's #A10324-1
Reference Guide
Guide to Oracle's Products and Services #A10560
Oracle7 Server and CICS/6000 #A14200
Where can I get more information on the DTP model?
X/Open's address is
X/Open company Ltd (Publications)
P O Box 109
Penn
High Wycombe
Bucks HP10 8NP
Tel: +44 (0)494 813844
Fax: +44 (0)494 814989
Request
G307 Distributed Transaction Processing: Reference Model Version 2
X/Open Guide G307 ISBN 1-859120-19-9 28cm.44p.pbk.220g.11/93
Page(4/4)
This file contains commonly asked questions about Oracle Server and UNIX
Transaction Processing Monitors (TPMs). The topics covered in this article are
o Performance with Oracle Server and TP monitors
o Performance using Oracle's XA Library
The questions answered in part 4 provide additional detail to the information
provided in part 1.
Performance with Oracle Server and TP Monitors
==============================================
I have heard that Transaction Processing Monitors (TPMs) will increase
Oracle Server performance. Is this true?
Several hardware and TPM vendors have made the claim that TPMs
will increase RDBMS performance. This claim is based on TPC-A
benchmarks. The key point to understand about TPC-A is that it
requires, for every transaction-per-second, ten times that many
users to be connected. For example, to get 600 TPS, you need 6000
users. The next question will answer in more detail how the the
three-tier architecture addresses this requirement, but first let's
look more generally at what TP Monitors can and can't do to improve
performance.
TP Monitors can provide better performance:
(1) When there are more than several hundred users connected.
This is because of the TP Monitor's role in the three-tier
architecture, described in the next question. In this
architecture, terminal handling is offloaded to one or more
separate machines, freeing up those cycles to do database work.
Note that this does NOT mean that Oracle itself runs faster,
just that we've given it more CPU cycles to use.
(2) When, because of the high potential concurrency of requests,
significant resource contention exists. Use of a TP Monitor can
limit the degree of concurrency and thus reduce contention.
TP Monitors can not provide better performance:
(1) For existing applications. The applications must be designed
to fit the TP Monitor architecture.
(2) For applications which are highly interactive in their use of
the database. These applications put many messages
through the transport system, and the TP Monitor is not as
efficient as SQL*Net for point-to-point communication.
(3) For CPU intensive single-query decision support. When executing
a single large command, Oracle query facilities work efficiently,
especially with the use of Oracle Parallel Query, available in 7.1.
How does the three-tier solution help TPC-A, or other situations with
thousands of on-line users?
The TPC-A test calls for a large number of users to produce a given
result. In the high-end results we produced in June, 1992, for example,
6150 terminals were simulated to produce 618 TPC-A transactions.
Thus, terminal concentration accounts for a large portion of the total
processing time used.
First, let's look at how the Multi Threaded Server would work for
this benchmark. In this case, there are many client processes,
but only a few server processes, which handle client requests on a
first-come first serve basis. When they are done with a request,
they take another client's request.
ORACLE7 CLIENT/SERVER ARCHITECTURE WITH MULTI THREADED SERVER
| Client | | Server |
| __________ |______________|_____ _____________ _____________ |
| | Client | | SQL*Net | |_|Dispatcher | | | |
| | Process| | | ____| Process |___| | |
| |________| | | | __|___________| | | |
|____________| | | | | | | | |
| | | | | | Oracle7 | |
______________ | | | __|__|____ | Server | |
| Client | | | | __|_|_____ | | | |
| __________ | | | | | Shared | |____| | |
| | Client | | SQL*Net | | | | Server |_|____| | |
| | Process|_|______________|__| | | Process|_| | | |
| |________| | | | |________| |___________| |
|____________| | | |
| | |
______________ | | |
| Client | | | |
| __________ | | | |
| | Client | | SQL*Net | | |
| | Process|_|______________|____| |
| |________| | | |
|____________| | |
|_______________________________________|
Client processes = N Dispatcher processes >= 1
Shared server processes >= 1
If there are 500 clients in this environment, there will be one or more
dispatcher processes, dynamically tunable, and one or more shared
server processes, dynamically tunable, on the server. The reduction
in the total number of processes handled by the server system
results in more processing time available for RDBMS activity. Thus
higher RDBMS transaction throughput can be obtained on the
server system.
But the problem for the TPC-A, and for certain large customer
configurations, is not the only ability of the Oracle Server to
process transactions, but also the ability of the operating
system to handle huge numbers of incoming connections.
There is one incoming connection for each client. Most UNIX
operating systems have a limit on how many such connections they can
handle. Even if a particular operating system allows a large number of
connections, each takes some amount of overhead to manage.
In order to service all 6150 terminals, we selected a 3-tier hardware
environment where the middle tier, using a TPM, acted as a terminal
concentrator. The high-end TPC-A architecture looked like the following.
The Application Servers, which contain the Pro*C statements used to
perform the transaction also run on the terminal concentrator machine
in order to offload as much work from the database serve as possible.
They send the compiled SQL over SQL*Net to the Oracle7 Server processes.
ORACLE7 TPS-A CLIENT/SERVER ARCHITECTURE
| Client | | Terminal | | Server |
| ________ | | Concentrator | | |
| | Client | |TPM | | | |
| | Process|_|_____|__ _____ | | |
| |________| |Comm | | | | | | |
|____________| | | | | | | |
| |__| | | | |
____________ | | TPM | | | |
| Client | | ___| | _______ | | ________ _______ |
| ________ | | | | |_| |__|_______|__| Oracle | | | |
| | Client | |TPM | | | | |Appl. | |SQL*Net| | Server |__| | |
| | Process|_|_____|_| |_____| |Server | | | | Process| | | |
| |________| |Comm | |_______| | | |________| | | |
|____________| | | | | | |
|_______________________| | | | |
| | | |
____________ _______________________ | |Oracle7| |
| Client | | Terminal | | |Server | |
| ________ | | Concentrator | | | | |
| | Client | |TPM | | | | | |
| | Process|_|_____|__ _____ | | __________ | | |
| |________| |Comm | | | | _______ |SQL*Net| | Oracle | | | |
|____________| | | | |_| |__|_______|__| Server |__| | |
| |__| | |Appl. | | | | Process| | | |
____________ | | TPM | |Server | | | |________| |_______| |
| Client | | ___| | |_______| | | |
| ________ | | | | | | | |
| | Client | |TPM | | | | | | |
| | Process|_|_____|_| |_____| | | |
| |________| |Comm | | | |
|____________| | | | |
|_______________________| |________________________|
Clients = 6150 Terminal concentrators = 17
TP Monitor instances = 17
Application server processes Oracle Server processes
= 17*8 = 17*8
The TPM is the software component of the terminal concentrator. In this role
it offloads terminal handling from the the machine running Oracle Server.
Since more than one terminal concentrator can be configured, whereas the
database in this case had to run on a single machine, concentrator machines
can be added until the performance of the back-end machine was optimized.
This three-tier solution resulted in the outstanding transaction throughput
announced with Oracle7 Server. Even with Oracle Parallel Server, it may pay
to offload the terminal handling so that the cluster can be exclusively used
for database operations.
Can you summarize the performance discussion for me?
Depending on the number of users required, different architectures may be
used in a client/server environment to maximize performance:
1) For a small number of users, the traditional Oracle two-task
architecture can be used. In this case, there is a one-to-one
correspondence between client processes and server processes. It's
simple, straightforward, and efficient.
2) For a large number of users, Multi Threaded Server might be a better
approach. Although some tuning may be required, Multi Threaded Server
can handle a relatively large number of users for each machine size
compared to the traditional Oracle approach. Using this approach,
customers will be able to handle many hundreds of users on many
platforms. Furthermore, current Oracle applications can move to this
environment without change.
3) For a very large number of users, where transactions are simple and
terminal input concentration is the overriding performance issue, a
3-tier architecture incorporating a TPM may be useful. In this case,
terminal concentration is handled by the TPM in the middle tier. As
you might expect, it is a more complex environment requiring more
system management. For existing Oracle customers, significant Oracle
application modifications will be required.
Oracle provides all of these choices.
Performance using Oracle's XA Library
=====================================
Are there any performance implications to using the XA library (in other
words, to using TPM-managed transactions)?
(1) The XA library imposes some performance penalty. You should use
TPM-managed transactions only if you actually need them. Even if you
are getting the one-phase commit optimization, the code path is
longer because we need to map back and forth between external
formats and internal ones. Also, prior to 7.1, XA requires you
to release all cursors at the end of a transaction, which results
in extra parsing. Even with shared cursors, there is time spent
looking up the one you need and re-validating it. This has been
improved for 7.1.
(2) If you need to use two-phase commit, this will incur additional cost
since extra I/Os are required. If you do need 2PC, you need to account
for that when sizing the application.
(3) Although some TPMs allow parallel execution of services (such as Tuxedo's
"tpacall"), this will not normally enhance performance unless different
resource managers are being used. In fact, Oracle Server must serialize
accesses to the same transaction by the same Oracle instance, and the
block/resume code will in fact degrade performance in that case compared
to running the services sequentially.hello,
the role is the same on all plattforms. the reports server takes requests for running reports, spawns an engine that executes the request. in addition to that, the server also provides scheduling services and security features for the reports environment.
regards,
the oracle reports team -
ORA-28500: connection from ORACLE to a non-Oracle system returned this message: ORA-02063: preceding line from OWB_75
Scenario:
I am having difficulty getting ODBC connection between Oracle OWB app with an 11gR2 DB (running on a VirtualBox Linux) and SQL Server 2008 running directly on the host. (Windows 8)
I am trying to take a SQL Server 2008 feed into Oracle Ware house Builder, and think(!) I have read everything and configured it in accordance (but I presume not given 3 days of failed attempts to fix it). I have also read several blogs, hence there might be a few more settings in the configuration files than the formal documentation says, but these have come from blogs that have “Solved” problems for other similar situations.
The environments:
HOST:
Name: RESOLVEIT-PC
IP: 192.168.1.80
Windows 8 (64bit) , with system DSN ODBC connection ACME_POS created with 32 bit ODBC set up (This setting still shows up fine in the 64 bit ODBC).
GUEST VM:
Name: OraDBSvr.com
GUES fixed IP Address: 192.1.200
Oracle VirtualBox (4.2.16)
Oracle Redhat Linux 6 (x86)
Oracle 11gR2 Enterprise Edition (11.2.0.1.0)
ODBC: Freetds driver
Configuration files:
initacmepos.ora
HS_FDS_CONNECT_INFO = 192.168.1.80/SQLEXPRESS/ACME_POS
HS_FDS_TRACE_LEVEL = 0
HS_FDS_SUPPORT_STATISTICS=FALSE
HS_RPC_FETCH_REBLOCKING= OFF
HS_FDS_FETCH_ROWS = 1
HS_FDS_SHAREABLE_NAME = /usr/local/lib/libtdsodbc.so
set ODBCINI=/opt/odbc/odbc.ini
# set <envvar>=<value>
odbc.ini
[ACME_POS]
Driver = FreeTDS
Description = ODBC Connection via FreeTDS
Trace = 1
Servername = 192.168.1.80
Database = dbo
odbcinst.ini
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib/psqlodbc.so
Setup = /usr/lib/libodbcpsqlS.so
Driver64 = /usr/lib64/psqlodbc.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib64/libmyodbc5.so
Setup64 = /usr/lib64/libodbcmyS.so
FileUsage = 1
[FreeTDS]
Discription = TDS driver (Sybase / MS SQL)
Driver = /usr/local/lib/libtdsodbc.so
# Setup = /usr/local/lib/libtdsS.so
FileUsage = 1
CPTimeout =
CPReuse =
[oracle@oraDBsvr etc]$
freetds.conf
# $Id: freetds.conf,v 1.12 2007-12-25 06:02:36 jklowden Exp $
# This file is installed by FreeTDS if no file by the same
# name is found in the installation directory.
# For information about the layout of this file and its settings,
# see the freetds.conf manpage "man freetds.conf".
# Global settings are overridden by those in a database
# server specific section
[global]
# TDS protocol version
; tds version = 4.2
# Whether to write a TDSDUMP file for diagnostic purposes
# (setting this to /tmp is insecure on a multi-user system)
; dump file = /tmp/freetds.log
; debug flags = 0xffff
# Command and connection timeouts
; timeout = 10
; connect timeout = 10
# If you get out-of-memory errors, it may mean that your client
# is trying to allocate a huge buffer for a TEXT field.
# Try setting 'text size' to a more reasonable limit
text size = 64512
# A typical Sybase server
[egServer50]
host = symachine.domain.com
port = 5000
tds version = 5.0
# A typical Microsoft server
[ACME_POS]
host = 192.168.1.80
port = 60801 # also tried 1433
instance = SQLEXPRESS
tds version = 8.0
client charset = UTF-8
tsql -LH 192.168.1.80
ServerName RESOLVEIT-PC
InstanceName SQLEXPRESS
IsClustered No
Version 10.50.4000.0
tcp 60801
np \\RESOLVEIT-PC\pipe\MSSQL$SQLEXPRESS\sql\query
via RESOLVEIT-PC,0:1433
Oracle listener:
[oracle@oraDBsvr log]$ cat /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = acmepos)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(PROGRAM = dg4odbc)
(HS = OK)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oraDBsvr)(PORT = 1521))
ADR_BASE_LISTENER = /u01/app/oracle
[oracle@oraDBsvr log]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 16-SEP-2013 13:57:41
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oraDBsvr)(PORT=1521)))
STATUS of the LISTENER
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 16-SEP-2013 13:50:34
Uptime 0 days 0 hr. 7 min. 7 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/oraDBsvr/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraDBsvr)(PORT=1521)))
Services Summary...
Service "acmepos" has 1 instance(s).
Instance "acmepos", status UNKNOWN, has 1 handler(s) for this service...
Service "dw" has 1 instance(s).
Instance "dw", status READY, has 1 handler(s) for this service...
Service "dwXDB" has 1 instance(s).
Instance "dw", status READY, has 1 handler(s) for this service...
The command completed successfully
Oracle tnsnames.ora
[oracle@oraDBsvr admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
dw =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dw)
acmepos =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(CONNECT_DATA=(SID=acmepos)
(HS=OK)
Oracle sqlnet.ora
[oracle@oraDBsvr admin]$ cat sqlnet.ora
# sqlnet.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (EZCONNECT, TNSNAMES)
ADR_BASE = /u01/app/oracle
I can connect from the linux server to SQL Server, and query the database:
[oracle@oraDBsvr etc]$ tsql -S acme_pos -U acme_dw_user -P acme1234
locale is "en_US.utf8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> select last_name from dbo.employees;
2> go
last_name
Davolio
Fuller
Leverling
Peacock
Buchanan
Suyama
King
Callahan
Dodsworth
(9 rows affected)
1>
However, I can’t get a response through Oracle OWB , and I get:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message: ORA-02063: preceding line from OWB_75
In the hs log file I get:
[oracle@oraDBsvr log]$ cat acmepos_agt_3821.trc
Oracle Corporation --- MONDAY SEP 16 2013 13:51:22.170
Heterogeneous Agent Release
11.2.0.1.0
HS Gateway: NULL connection context at exit
[oracle@oraDBsvr log]$
I am really stuck now and going round in circles and can’t see the wood for trees! Can anyone please help?!!
Many Thanks.
Rafe.Let us rewrite your ODBC DSN a little bit... Your current odbc.ini looks like:
[ACME_POS]
Driver = FreeTDS
Description = ODBC Connection via FreeTDS
Trace = 1
Servername = 192.168.1.80
Database = dbo
Let us change it a little bit so that we only need one config file - no odbcinst.ini nor freetds.conf file anymore:
[ACME_POS]
Driver =/usr/local/lib/libtdsodbc.so
Server = 192.168.1.80
Database
= dbo #### I have some doubts that you have a SQL Server database called dbo - one database that always exists is master - so as a test use master here or get the real database name of the SQL Server database you want to connect
Port = 60801 ## make sure it really is the correct port - best would be to check on the SQL server and then try telnet <ip> <port> if you can connect to the SQL server
TDS_Version = 8.0
QuotedId=YES
Especially the last 2 parameters are mandatory. TDS_Version specifies the TDS Version you have to use to connect to the SQL Server and QuotedID is required for DG4ODBC as it surrounds objevt names by double quotes.
What happens now when you try to connect with for example isql - the ODBC test utility shipped with the ODBC Driver manager?
In addition, could you please do me another favour and check the word size of DG4ODBC and the ODBC Driver Manager as well as the ODBC Driver - just execute:
file /u01/app/oracle/product/11.2.0/dbhome_1/bin/dg4odbc
file /usr/local/lib/libtdsodbc.so
file < the patch to your libodbc.so library>/libodbc.so
and post the output. -
ORA-28500: connection from ORACLE to a non-Oracle system
Hi, I need to connect to a OWB mysql database, but when making a query in sql plus sends me this error.
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[Generic Connectivity Using ODBC][H006] The init parameter
<HS_FDS_CONNECT_INFO> is not set. Please set it in init<orasid>.ora file.
ORA-02063: preceding 2 lines from MYSQLINK
listener.ora
# listener.ora Network Configuration File: C:\oraclebi\db\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oraclebi\db)
(PROGRAM = extproc)
(SID_DESC =
(SID_NAME = MYSQL)
(ORACLE_HOME = C:\oraclebi\db)
(PROGRAM = hsodbc)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = bi.oratechla.com)(PORT = 1521))
tnsnames.ora
# tnsnames.ora Network Configuration File: C:\oraclebi\db\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
BISE1DB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = bi.oratechla.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bise1db)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
OTCL_MORDOR =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.31.210)(PORT = 1620))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TEST)
MYSQL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = bi.oratechla.com)(PORT = 1521))
(CONNECT_DATA =
(SID = MYSQL))
(HS = OK)
inithMYSQL.ora
# This is a sample agent init file that contains the HS parameters that are
# needed for an ODBC Agent.
# HS init parameters
HS_FDS_CONNECT_INFO = MYSQL
HS_FDS_TRACE_LEVEL = off
# Environment variables required for the non-Oracle system
#set <envvar>=<value>
system dsn --> MYSQL
databaselink
CREATE PUBLIC DATABASE LINK mysqlink CONNECT TO "oracle" IDENTIFIED BY "oracle" using 'ejemplo';
Database link created.
select * from empleado@mysqlink;
ERROR at line 1:
ORA-12154: TNS:could not resolve the connect identifier specified
or
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[Generic Connectivity Using ODBC][H006] The init parameter
<HS_FDS_CONNECT_INFO> is not set. Please set it in init<orasid>.ora file.
ORA-02063: preceding 2 lines from MYSQLINK
tnsping
C:\Documents and Settings\Administrator>tnsping MYSQL
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 06-AUG-2
010 06:31:57
Copyright (c) 1997, 2005, Oracle. All rights reserved.
Used parameter files:
C:\oraclebi\db\network\admin\sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = bi.orate
chla.com)(PORT = 1521)) (CONNECT_DATA = (SID = MYSQL)) (HS = OK))
OK (30 msec)Use the setup failing with
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[Generic Connectivity Using ODBC][H006] The init parameter
<HS_FDS_CONNECT_INFO> is not set. Please set it in init<orasid>.ora file.
ORA-02063: preceding 2 lines from MYSQLINK
There is a typo in the name of you gateway init file. You posted the content of inithMYSQL.ora but the naming is init<SID>.ora which is in your case initMYSQL.ora.
In addition please keep in mind HSODBC has been desupported since 2008 and when starting a new configuration you should use the follow up product dg4odbc (Database Gateway for ODBC) V11. -
Hi, i'm trying to create database link from a database Oracle 11g to PostgreSQL with DG4ODBC, and unixODBC
my configured to /etc/odbc.ini
[PostgreSQL]
Description = Test to Postgres
Driver = psqlodbc
Trace = Yes
TraceFile = /tmp/sql.log
Database = danieldb
Servername =
UserName = SA
Password = password
Port = 5432
Protocol = 6.4
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
my configured to /etc/odbcinst.ini
[ODBC]
CommLog=1
Debug=1
FileUsage=1
Pooling=No
Trace=1
[psqlodbc]
Description=PostgreSQL ODBC driver
Driver=/usr/lib64/psqlodbcw.so
CommLog=1
Debug=0
FileUsage=1
my configured to /u01/app/oracle/product/11.2.0/xe/hs/admin/initPostgreSQL.ora
HS_FDS_CONNECT_INFO = PostgreSQL
HS_FDS_TRACE_LEVEL = 0
HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbcpsql.so
set ODBCINI=/etc/odbc.ini
my configured to /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
Listener =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle-poc)(PORT = 1521))
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC=
(SID_NAME=PostgreSQL)
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe)
(PROGRAM=dg4odbc)
(ENVS="LD_LIBRARY_PATH=/usr/lib64:/u01/app/oracle/product/11.2.0/xe/lib")
my configured to /u01/app/oracle/product/11.2.0/xe/network/admin/tnsname.ora
PostgreSQL=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle-poc)(PORT = 1521))
(CONNECT_DATA =
(SID = PostgreSQL)
(HS = OK)
i'm try to created public database link :
CREATE PUBLIC DATABASE LINK "orapos" CONNECT TO "SA" IDENTIFIED BY "password" USING 'PostgreSQL';
when i used tnsping
[root@oracle-poc admin]# tnsping PostgreSQL
TNS Ping Utility for Linux: Version 11.2.0.2.0 - Production on 16-MAY-2013 20:34:19
Copyright (c) 1997, 2011, Oracle. All rights reserved.
Used parameter files:
/u01/app/oracle/product/11.2.0/xe/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle-poc)(PORT = 1521)) (CONNECT_DATA = (SID = PostgreSQL)) (HS = OK))
OK (0 msec)
and last i try to use the database link :
SQL> select * from "tabel2"@orapos
2 ;
select * from "tabel2"@orapos
ERROR at line 1:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
ORA-02063: preceding line from ORAPOS
Whats wrong with my configuration??
Thank you and best regards,
DanielMike,
yes i've downloaded the ODBC driver manager..
for HS_FDS_SHAREABLE_NAME i use /usr/lib/psqlodbc.so
and i get this error when i call the db link(orpos)
ERROR at line 1:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
ORA-02063: preceding line from ORAPOS
for HS_FDS_SHAREABLE_NAME = /usr/lib64/psqlodbcw.so
and i get this error when i call the db link(orpos)
ERROR at line 1:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
c
and when i used isql isql to call DNS(PostgreSQL) is success
whats wrong with my config?
about PostGres ODBC did you mean postgresql-odbc-08.04.0200-1.el6.x86_64 ??
Thank you and best regards,
Daniel -
OWSM 10.1.3.4 and Non-SOAP XML-based web service
Hi all,
According to the OWSM 10.1.3.4 Administrator's Guide, "all Web services registered with an Oracle WSM Gateway are virtualized as both a SOAP and non-SOAP Web service." To access the non-SOAP (XML-only) web service, the documentation states "The non-SOAP virtualized URL can be determined from the virtualized SOAP URL by replacing the services keyword in the URL with the xml keyword."
For example, if the SOAP virtualized endpoint is:
http://host:port/gateway/services/SID0003001
then, the non-SOAP XML service endpoint is:
http://host:port/gateway/xml/SID0003001
I have several web services registered with an OWSM gateway, running on SOA Suite 10.1.3.4, and can access those without any problem. However, when I attempt to access the "/gateway/xml" version of these services, I simply get an HTTP 200 response header with a null body.
Does anyone have any ideas what could be causing this or what the secret is to get the non-SOAP XML service feature of OWSM to work?
Thanks!
--GaryHi all,
According to the OWSM 10.1.3.4 Administrator's Guide, "all Web services registered with an Oracle WSM Gateway are virtualized as both a SOAP and non-SOAP Web service." To access the non-SOAP (XML-only) web service, the documentation states "The non-SOAP virtualized URL can be determined from the virtualized SOAP URL by replacing the services keyword in the URL with the xml keyword."
For example, if the SOAP virtualized endpoint is:
http://host:port/gateway/services/SID0003001
then, the non-SOAP XML service endpoint is:
http://host:port/gateway/xml/SID0003001
I have several web services registered with an OWSM gateway, running on SOA Suite 10.1.3.4, and can access those without any problem. However, when I attempt to access the "/gateway/xml" version of these services, I simply get an HTTP 200 response header with a null body.
Does anyone have any ideas what could be causing this or what the secret is to get the non-SOAP XML service feature of OWSM to work?
Thanks!
--Gary
Maybe you are looking for
-
Downloads going to The "Temp" Folder
Hi! I've had this problem for a while now and now i want to fix it. I see other people have this problem too. When i download a file and open it dircetl, its saves in the Temp folder on my C drive(witch is an SSD) I don't want it there and i have not
-
Customer Master / Vendor master Creation
Hi Folks, I have a requirement that the whenever Customer / vendor is created or changed, then there needs to be a mail sent for the same. We are currently using the user exit : EXIT_SAPMF02D_001 for customer creation and user xit : EXIT_SAPMF02K_00
-
Question: Trouble linking PDF in Muse
Hi. I purchased a Adobe Creative Cloud subscription for Christmas and have since been learning how to use Muse. Today, I was working on a website for a client that includes a downloadable PDF of the clients brochure. Everything works fine except that
-
okay, i have the multi-part files. i've read the other suggestions from this forum for concatenating the files into a .iso and burning the cd's (actually taken from a sparc install, but i get the idea). but i cannot boot from my cd. where do i find t
-
How do you adjust the volume for this ipod? I can't seem to adjust it. Please help.