আংশিকভাবে ওরাকল ক্লায়েন্টের সম্পূর্ণ ইনস্টলেশন সংক্রান্ত বিরোধী সংস্করণ বা সাক্ষ্যদানের সমস্যা হওয়ার ফলস্বরূপ, আমার বিকাশকারী দল (যার মধ্যে আমি একজন সদস্য) ওরাকল তাত্ক্ষণিক ক্লায়েন্ট ব্যবহার করার দিকে এগিয়ে চলেছে এবং বেশিরভাগ ক্ষেত্রে আমাদের ডেভলপমেন্ট মেশিনে ইনস্টলেশন এড়িয়ে চলেছে নতুন প্রকল্প। এটি বেশ ভালভাবে কাজ করেছে, এমনকি আমরা এই সেটআপটির সাহায্যে প্রযোজনার কাজে নিযুক্ত করি। যেহেতু আমরা বেশিরভাগই একটি নেট শপ, তাই আমরা জাভাের পরিবর্তে দেশীয় ক্লায়েন্ট (। নেট র্যাপার সহ) ব্যবহার করছি।
এখন একটি ক্লায়েন্টের প্রয়োজন হয় যে আমরা একটি এলডিএপি সার্ভারের সাথে ডাটাবেস পরিষেবাটি নিবন্ধভুক্ত করি এবং নাম সন্ধানের জন্য এলডিএপি সার্ভারটি ব্যবহার করি। তারা সরবরাহ করেছে sqlnet.ora
এবং ldap.ora
ফাইলগুলি (এবং সাথে থাকা এনক্রিপশন কনফিগারেশন ফাইল) যা সঠিক বলে মনে হয়। বিশেষত sqlnet.ora
ফাইলটি নেট পরিষেবার নাম সন্ধানের জন্য সম্ভাব্য উত্স হিসাবে এলডিএপি নির্দিষ্ট করে:
names.directory_path=(tnsnames,ldap)
আমি আত্মবিশ্বাসী যে আমি যে মেশিনটির সাথে কাজ করছি সেগুলি এসকিউএল বিকাশকারী (যা আমাকে সরাসরি এলডিএপি তথ্য ইনপুট করার অনুমতি দিয়েছিল) ব্যবহার করে সে ক্ষেত্রে অ্যাক্সেস করতে এলডিএপি ব্যবহার করতে পারে। তারা সঠিক বলে ধরে নিচ্ছি, কীভাবে আমি এই কনফিগারেশনটি স্বীকৃতি জানাতে এবং নামের সন্ধানের জন্য এলডিএপি ব্যবহার করতে তাত্ক্ষণিক ক্লায়েন্ট পেতে পারি?
আমি এখন পর্যন্ত কি চেষ্টা করেছি
আমি TNS_ADMIN
পরিবেশিত পরিবর্তনশীলকে সেই ডিরেক্টরিটিতে সেট করার চেষ্টা করেছি যাতে সরবরাহ করা ফাইল রয়েছে এবং এটি তাত্ক্ষণিক ক্লায়েন্ট কোনও tnsnames.ora
ফাইলকে স্বীকৃতি দেওয়ার জন্য ভাল কাজ করে, এটি এলডিএপি অনুসন্ধান করা শুরু করার পক্ষে যথেষ্ট বলে মনে হয় না। এখানে ফলাফল (পাথ, ব্যবহারকারীর নাম এবং পাসওয়ার্ড পরিবর্তিত রয়েছে):
(নিম্নলিখিত কমান্ডগুলি উইন্ডোজ কমান্ড প্রম্পট হিসাবে দেখা যায়, তবে আমি কল্পনা করেছিলাম যে লিনাক্সেও অনুরূপ কিছু কার্যকর হবে sqlplus
here একই ডিরেক্টরিতে ইনস্ট্যান্ট ক্লায়েন্ট বাইনারি সহ এখানে তাত্ক্ষণিক সংস্করণটি দেখা যাচ্ছে))
C:\TEMP>SET TNS_ADMIN=C:\path\to\sqlnet\ldap\and\tnsnames\ora\files
C:\TEMP>echo %TNS_ADMIN%
C:\path\to\sqlnet\ldap\and\tnsnames\ora\files
C:\TEMP>sqlplus.exe USERNAME/PASSWORD@LOCALTNSNAME
SQL*Plus: Release 11.2.0.2.0 Production on Mon Jul 7 10:22:25 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Produ
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
C:\TEMP>sqlplus.exe USERNAME/PASSWORD@LDAPTNSNAME
SQL*Plus: Release 11.2.0.2.0 Production on Mon Jul 7 10:24:21 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
সাইড নোট
টিএনএস, এলডিএপি, বা তাত্ক্ষণিক ক্লায়েন্ট (বা এমনকি কেবলমাত্র সাধারণ ওরাকল ক্লায়েন্ট) এর জন্য ট্যাগ রয়েছে যা এই প্রশ্নের সাথে যুক্ত হতে পারে? আমি কোন সনাক্ত করতে পারেনি।
where
( C:\TEMP\sqlplus.exe
)। আরও নির্দিষ্ট sqlplus
করে বলতে গেলে, মেশিনে "ইনস্টল" করা হয় না। এটি কেবল বর্তমান ডিরেক্টরিতে বসে আছে, পাশে ক্লায়েন্ট বাইনারি রয়েছে। এটি অবশ্যই পরিবেশের ভেরিয়েবলটি tnsnames.ora
ব্যবহার করে ফাইলটি TNS_ADMIN
তুলেছে, কারণ এটি সম্পূর্ণ ভিন্ন ডিরেক্টরিতে বন্ধ রয়েছে।
where oci.dll
। এছাড়া প্রত্যাশিত ফলাফলের দেয়: C:\TEMP\oci.dll
।