.Net c# + Oracle วิธ๊ใช้ connection string

เกี่ยวกับ ปัญหาการใช้งาน การติดตั้ง ฐานข้อมูล MySql Oracle MSSQL ect...
การเขียน คำสั่ง SQL เพื่อดึกข้อมูล บอร์ดนี้ควรระบุโครงสร้างตารางของท่านในคำถามด้วยนะ

Moderator: mindphp

User avatar
jataz2
PHP Super Member
PHP Super Member
Posts: 235
Joined: 22/02/2011 11:48 am

.Net c# + Oracle วิธ๊ใช้ connection string

Post by jataz2 » 04/07/2019 11:30 am

แบบที่ 1 ทั่วๆไป

Code: Select all

<add name="T_CONN" connectionString="DATA SOURCE=10.0.0.1:1243/CUSTOMERDB;PASSWORD=password;PERSIST SECURITY INFO=True;USER ID=CUST;Enlist=True;" />
แบบที่ 2 เพิ่ม option เข้าไป 3 ตัว Validate Connection ,Connection Lifetime และ Connection Timeout

Code: Select all

<add name="T_CONN" connectionString="DATA SOURCE=10.0.0.1:1243/CUSTOMERDB;PASSWORD=password;PERSIST SECURITY INFO=True;USER ID=CUST;Enlist=True; Validate Connection=true;Connection Lifetime=1800;Connection Timeout=300;" />
ผมแนะนำให้ใช้แบบที่ 2 ครับ เพิ่มเวลา timeout จาก default 15 วินาที เป็น 300 วินาที มีการ validate connection ก่อน และระบุเวลา lifetime เป็น 1800 วินาที คิวรี หรือ command update insert หรือ call storeproc ทั่วไปไม่น่าจะนานเกิน 300 วิ ครับ ป้องกันปัญหาก่อนที่มันจะเกิด

อ่านเพิ่มเติมได้ที่นี่ครับ

https://www.codeproject.com/Articles/17 ... t-a-Glance

https://www.connectionstrings.com/oracl ... t-odp-net/

User avatar
Sirayu
PHP Jr. Member
PHP Jr. Member
Posts: 27
Joined: 12/06/2019 11:30 am
Contact:

Re: .Net c# + Oracle วิธ๊ใช้ connection string

Post by Sirayu » 04/07/2019 12:54 pm

ขอบคุณเนื้อหาดีๆ มากครับ
โปรแกรมตัดต่อวีดีโอ :https://ตัดต่อวีดีโอ.com/

User avatar
jataz2
PHP Super Member
PHP Super Member
Posts: 235
Joined: 22/02/2011 11:48 am

Re: .Net c# + Oracle วิธ๊ใช้ connection string

Post by jataz2 » 05/07/2019 9:45 am

แบบที่1 ถ้าเราไม่ระบุ IsolationLevel ค่า default ของมันคือ Serializable

Code: Select all

 	using (TransactionScope txn = new TransactionScope())
            { 
                for (int i=0;i< 1000; i++)
                {
                      string cmd = "insert into tba(id,count) values(1,7)";

                      ExecuteNoneQuery(cmd );
                }     
               txn.Complete();
            }
แบบที่ 2 ใส่ transaction option เพิ่มเข้าไป แบบนี้จะดูดีกว่า ลดวามเสี่ยง deadlock และ timeout

Code: Select all

            var txOptions = new System.Transactions.TransactionOptions();
            txOptions.IsolationLevel = IsolationLevel.ReadCommitted;
            using (TransactionScope txn = new TransactionScope(TransactionScopeOption.Required, txOptions))
            { 
                for (int i=0;i< 1000; i++)
                {
                      string cmd = "insert into tba(id,count) values(1,7)";

                      ExecuteNoneQuery(cmd );
                }     
               txn.Complete();
            }
Attachments
Isolation Level.jpg
Isolation Level.jpg (201.91 KiB) Viewed 418 times

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “SQL - Database”

Who is online

Users browsing this forum: No registered users and 27 guests