Keep talking about Oracle's MTS

Source: Internet
Author: User
Tags key metalink
Oracle
After writing an article about MTS on CSDN, I received some mail or message from some netizens, and they had a lot of questions about MTS. With Piner,fenng,biti and some other netizens in the chat, they are not agree with the use of MTS, that day with Oracle's engineers, he was also some objections, but in my actual application process although encountered some problems, but overall MTS still let me very satisfied with, The memory utilization of one of my Oracle servers in peak time was reduced from 95% to 78%, and the application was very good. I will then make a few additional additions to MTS in the form of a question.

1. After Oracle server was adjusted to MTS, some clients appeared to be not connected to Oracle server, most of them were TNS-12509, how to solve?

Reply:
In the actual process is the existence of this aspect of the situation, I summed up, the large part of the Oracle8 by the client caused, that is, those with service name still have to hang a. The world's kind of client, in fact, is very simple to solve, Only need to tnsname.ora this file in your service name configuration "sid=" changed to "Service_name=", this is OK.

2, I used the Chengdu Pu Company's "Tunnel gateway" This product, previously in the dedicated way is good, but after the conversion to MTS, why the client is not even Oracle's server it?

Reply:
In fact, our company also used this product, at the beginning of the MTS application also encountered this problem. The reason for this problem is that the maples of this product is only for monitoring the static end of the return port, it is believed that the Oracle listening port is the return ports, actually in MTS is not the case, a few more connections, with Netstat-n on the client to see it will understand that MTS returned the port is dynamic, So maples this product is not good to use. The solution to the urgent problem can be as follows: When the MTS client configures service name, requesting a dedicate connection, that is, using the server = dedicated option, this resolves the issue.

3. How do you track MTS's dispatcher and shared server processes?

Reply:
This requires diagnostic events, and the Dispatcher diagnostic event number is 10248,shared server 10249, as in the example of shared server, assuming that the s015 operating system has a process number of 13161.

Sql>conn Sys/pass as Sysdba
Sql>oradebug Setospid 13161
Sql>oradebug Tracefile_name--look at the name of the trace file
Sql>oradebug EVENT 10249 trace name forever, Level 10

You can also include the following two lines in Init<sid>.ora to complete trace:

event= "10248 Trace name Context forever, Level X"--Dispatchers
event= "10249 Trace name Context forever, Level X"-Shared servers

4. How to set up IPC in MTS

Reply:
Examples of the following configuration samples from Metalink
LISTENER. ORA:
=============

Listener=
(address_list=
(address=
(PROTOCOL=IPC)
(Key=<sid name>)
)
(address=
(PROTOCOL=IPC)
(Key=<alias in Tnsnames.ora for the sid>)
)
)
connect_timeout_listener=10
Startup_wait_time_listener=0
Sid_list_listener=
(sid_list=
(sid_desc=
(Sid_name=<sid name>)
(Oracle_home=)
)

Other protocols can be used in the address list to add the address. This example is entirely an example of an IPC

TNSNAMES. ORA:
=============

<alias>=
(description=
(address=
(PROTOCOL=IPC)
(Key=<sid name>)
)
(Connect_data=
(Sid=<sid name>)
)
)


Init. ORA entries for MTS:
=========================

Mts_dispatchers= "ipc,2"
Mts_servers=1
Mts_max_dispatchers=6
Mts_max_servers=3
Mts_service=<sid name>
Mts_listener_address= "(Address= (PROTOCOL=IPC) (Key=<sid name>))"


5, how to see what a shared_server is busy?

Reply:
In fact, this is the same as the dedicated way of viewing, also take s015 as an example, its SPID is 13161, use the following SQL to check

Out

SELECT A.username,
A.machine,
A.program,
A.sid,
a.serial#,
A.status,
C.piece,
C.sql_text
From V$session A,
V$process B,
V$sqltext C
WHERE b.spid=13161
and B.ADDR=A.PADDR
and a.sql_address=c.address (+)
ORDER BY C.piece

6. I saw a shared server process in Unix that took up a lot of CPU resources and found the address of the process through the Select addr from v$process where Spid=<os processes pid> The select * from V$session where paddr=<paddr> did not result, so I can't tell what my shared server is doing, what should I do?

Reply:

SELECT status from V$circuit
WHERE Circuit in
(
SELECT Circuit from V$shared_server
WHERE Paddr=<your paddr>
)
If the return of status is EOF, which means that the shared server is actually dead, you can erase it on the operating system:
eg
Oracle$kill-9 <shared server ' s pid>

You don't have to worry about the big impact of killing, but in a few minutes, Pmon will be able to reboot the shared server process for you.

7, how to restore to the dedicate in the case of the connection mode, and enable more dispatcher?

Reply:
7.1 Off:
Sql>alter SYSTEM SET mts_dispatchers= ' tcp,0 ';

7.2 To enable more dispatcher
Sql>alter SYSTEM SET mts_dispatchers= ' tcp,40 ';

Some of the contents refer to Metalink's note:47684.1




Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.