📍 ধানমন্ডি, ঢাকা-১২০৫🇬🇧 English

Oracle WebLogic Server: এন্টারপ্রাইজ Middleware-এ দক্ষতা

Oracle WebLogic Server হলো সেই নীরব কর্মবীর যা অসংখ্য mission-critical Java EE অ্যাপ্লিকেশনের পেছনে চলে — ব্যাংকিং প্ল্যাটফর্ম, ERP সিস্টেম, টেলিকম বিলিং, বিমা দাবি, হেলথকেয়ার রেকর্ড। একাধিক ইন্ডাস্ট্রিতে version 10g থেকে 14c পর্যন্ত WebLogic পরিবেশ deploy ও পরিচালনার পর আমি বলতে পারি, যে WebLogic নীরবে গুনগুন করে চলে আর যেটি রাত ২টায় আপনাকে জাগিয়ে তোলে — এ দুইয়ের পার্থক্য প্রায় সবসময়ই install-এর সময় নেওয়া আর্কিটেকচার সিদ্ধান্তে নিহিত। এই বিস্তৃত গাইড WebLogic-কে ভিত্তি থেকে প্রোডাকশন দক্ষতা পর্যন্ত কভার করে।

১. Oracle WebLogic Server কী?

Oracle WebLogic Server হলো একটি এন্টারপ্রাইজ-গ্রেড Java EE (এখন Jakarta EE) অ্যাপ্লিকেশন সার্ভার যা Java অ্যাপ্লিকেশন host ও পরিচালনা করে। এটি servlet, JSP, EJB, JMS messaging, JDBC pooling, web service, REST API এবং জটিল transactional অ্যাপ্লিকেশনের জন্য runtime পরিবেশ দেয়। WebLogic হলো আপনার শেষ ব্যবহারকারী (ব্রাউজার, মোবাইল অ্যাপ) ও আপনার backend database (সাধারণত Oracle)-এর মধ্যেকার অ্যাপ্লিকেশন স্তর।

এটি ব্যাপকভাবে ব্যবহৃত হয়:

  • Oracle E-Business Suite, Oracle Fusion Middleware, SOA Suite, BPM Suite
  • ব্যাংকিং অ্যাপ (core banking, internet banking, payment gateway)
  • টেলিকম OSS/BSS প্ল্যাটফর্ম
  • বিমা দাবি ও পলিসি ব্যবস্থাপনা সিস্টেম
  • নিয়ন্ত্রিত ইন্ডাস্ট্রিতে কাস্টম Java EE অ্যাপ্লিকেশন

২. প্রোডাকশনে WebLogic সংস্করণ (২০২৬)

  • WebLogic 12.2.1.4 — এখনও ব্যাপকভাবে deploy করা। Premier support বর্ধিত।
  • WebLogic 14.1.1 — Java SE 8 ও 11, Java EE 8 সমর্থন
  • WebLogic 14.1.2 — Java SE 17 ও 21, Jakarta EE 10 — নতুন deployment-এর জন্য বর্তমানে পছন্দসই

৩. WebLogic আর্কিটেকচার: মূল উপাদান

৩.১ Domain

একটি WebLogic Domain হলো logical ব্যবস্থাপনা সীমানা — একটি একক প্রশাসনিক একক। একটি domain-এর ভেতরে আপনার থাকে:

  • একটি Administration Server
  • শূন্য বা একাধিক Managed Server
  • ঐচ্ছিক Cluster যা managed server-গুলোকে দলবদ্ধ করে
  • কনফিগারেশন: data source, JMS, security realm, অ্যাপ্লিকেশন

৩.২ Administration Server (AdminServer)

কেন্দ্রীয় নিয়ন্ত্রণ তল। WebLogic Console (port 7001-এ web UI), WLST (scripting) host করে এবং কনফিগারেশন পরিচালনা করে। কখনও AdminServer-এ প্রোডাকশন অ্যাপ্লিকেশন deploy করবেন না — এটি হালকা, নিরাপদ এবং কেবল প্রশাসনের জন্য নিবেদিত থাকা উচিত।

৩.৩ Managed Server

যেখানে আপনার অ্যাপ্লিকেশন আসলে চলে। প্রতিটি managed server একটি আলাদা JVM process যা নিজের port-এ শোনে। প্রোডাকশন domain-এ সাধারণত একাধিক managed server থাকে, প্রায়ই cluster-এ।

৩.৪ Node Manager

OS-স্তরের daemon (প্রতি physical/virtual সার্ভারে একটি) যা managed server শুরু, বন্ধ, restart ও মনিটর করে। HA-এর জন্য গুরুত্বপূর্ণ — একটি managed server মারা গেলে Node Manager স্বয়ংক্রিয়ভাবে তা restart করতে পারে। দুই ধরন:

  • Plain Node Manager (সুপারিশকৃত): SSL credential দিয়ে authenticate করে
  • Domain-Scoped Node Manager: প্রতি-domain কনফিগারেশন

৩.৫ Cluster

একগুচ্ছ managed server (এক বা একাধিক machine জুড়ে) যা একসঙ্গে কাজ করে দেয়:

  • Load balancing — আগত request cluster সদস্যদের মধ্যে বণ্টন
  • Failover — session replicate করা; একটি সদস্য মারা গেলে অন্যটি তুলে নেয়
  • Scalability — বেশি লোড সামলাতে আরও সদস্য যোগ করা

৪. স্ট্যান্ডার্ড WebLogic Topology

একটি সাধারণ প্রোডাকশন deployment:

  • ২টি physical সার্ভার (বা availability zone জুড়ে ২টি VM)
  • machine 1-এ (বা pillar host) ১টি AdminServer
  • প্রতি machine-এ ২টি Managed Server (মোট ৪টি), সবই এক cluster-এ
  • প্রতিটি machine-এ Node Manager
  • সামনে ট্রাফিক route করা Load Balancer / OHS (Oracle HTTP Server)
  • অ্যাপ্লিকেশন ডেটার জন্য পেছনে Oracle Database

৫. একটি WebLogic Domain তৈরি করা

Configuration Wizard বা WLST ব্যবহার করুন। WLST দিয়ে দ্রুত উদাহরণ:

# Run from $MW_HOME/oracle_common/common/bin/wlst.sh
readTemplate('/u01/app/oracle/wls14/wlserver/common/templates/wls/wls.jar')
cd('/Servers/AdminServer')
set('ListenAddress', 'adminhost.company.com')
set('ListenPort', 7001)
cd('/Security/base_domain/User/weblogic')
cmo.setPassword('Welcome1#')
setOption('OverwriteDomain', 'true')
writeDomain('/u01/app/oracle/wls14/user_projects/domains/prod_domain')
closeTemplate()
exit()

৬. JDBC Data Source — ডেটাবেজের জীবনরেখা

WebLogic পারফরম্যান্স সমস্যার ৮০% জন্ম নেয় JDBC connection pool-এ। সেরা চর্চা:

৬.১ Standalone DB-এর জন্য Generic Data Source, RAC-এর জন্য GridLink

Oracle RAC backend-এর জন্য Active GridLink Data Source অপরিহার্য — এরা Oracle Notification Service (ONS) বোঝে, FAN event সামলায় এবং RAC লোড অনুযায়ী connection route করে। RAC-এর জন্য আর multi-pool data source ব্যবহার করবেন না।

৬.২ Connection Pool সাইজিং

  • Initial Capacity: 5-10 (0 এড়িয়ে চলুন — প্রথম request connection খরচ বহন করে)
  • Maximum Capacity: অ্যাপের চাহিদা অনুযায়ী, সাধারণত প্রতি managed server-এ 50-200
  • Statement Cache Size: প্রতি connection-এ 30-50 cached prepared statement

৬.৩ গুরুত্বপূর্ণ সেটিং

  • Test Connections On Reserve: প্রোডাকশনের জন্য ON
  • Test Frequency: 60 সেকেন্ড (idle connection test)
  • Inactive Connection Timeout: 60 সেকেন্ড
  • Connection Reserve Timeout: 10 সেকেন্ড
  • Test Table Name: SQL ISVALID (Oracle) বা সরল SELECT 1 FROM DUAL

৭. অ্যাপ্লিকেশন Deploy করা

তিনটি ফরম্যাট:

  • WAR — Web Application Archive (servlet, JSP)
  • EAR — Enterprise Application Archive (web + EJB module)
  • Exploded directory — ডেভেলপমেন্টের জন্য উপযোগী

Console, WLST বা script-এর মাধ্যমে deploy করুন:

connect('weblogic','password','t3://adminhost:7001')
deploy(appName='myapp',
       path='/deploy/myapp.ear',
       targets='Cluster_Prod',
       upload='true',
       stageMode='stage')

Production redeployment — zero-downtime অ্যাপ্লিকেশন আপডেটের জন্য side-by-side বা partial redeployment ব্যবহার করুন।

৮. JMS ও Messaging

WebLogic JMS একটি সম্পূর্ণ-বৈশিষ্ট্যযুক্ত messaging সিস্টেম। উপাদান:

  • একটি managed server-এ targeted JMS Server
  • Persistent Store — JDBC store (RAC-safe) বা file store
  • Destination — Queue (point-to-point) বা Topic (publish-subscribe)
  • দূরবর্তী JMS server-এ store-and-forward-এর জন্য SAF Agent
  • cluster-wide messaging-এর জন্য Distributed Destination

৯. Performance Tuning — আসল নব

৯.১ JVM Tuning

# Production JVM args for managed server (16GB heap)
-Xms16g -Xmx16g
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:+ParallelRefProcEnabled
-XX:+DisableExplicitGC
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/u01/dumps
-Xlog:gc*:file=/u01/logs/gc-%t.log:time,uptime,level,tags:filecount=10,filesize=20M
-Djava.net.preferIPv4Stack=true

৯.২ WebLogic-নির্দিষ্ট Tuning

  • Self-Tuning Thread Pool: WebLogic-কে thread পরিচালনা করতে দিন — নির্দিষ্ট প্রমাণ না থাকলে আগেভাগে tune করবেন না
  • Work Manager priority: কম-অগ্রাধিকারের background কাজ সীমিত করুন
  • Native IO Enabled
  • Stuck Thread Detection: ডিফল্ট 600s — আগাম সতর্কতার জন্য 300s সেট করুন
  • Domain Log Filter: সাধারণ warning-এর কোলাহল কমান
  • Production Mode: সবসময় — কখনও প্রোডাকশন dev mode-এ চালাবেন না

৯.৩ সাধারণ Bottleneck

  • JDBC pool exhaustion → অ্যাপ কোডে leaked connection
  • Stuck thread → ধীর external service-এ blocking call
  • OutOfMemoryError → memory leak, ছোট heap, বা PermGen/Metaspace
  • Full GC pause → G1GC tuning বা বড় heap-এ যাওয়া

১০. Clustering ও Session Replication

high-availability web অ্যাপ্লিকেশনের জন্য session replication কনফিগার করুন। অপশন:

  • In-Memory Replication: প্রতিটি session একটি backup server-এ কপি (ডিফল্ট)। সেরা পারফরম্যান্স।
  • JDBC Persistence: session database-এ সংরক্ষিত। পূর্ণ cluster restart টিকে থাকে, ধীর।
  • Coherence-based: সব সদস্য জুড়ে distributed cache। সবচেয়ে scalable।
  • File-based: local file, কেবল single-machine cluster।

১১. নিরাপত্তা সেরা চর্চা

  • ডিফল্ট port বদলান: 7001-এ AdminServer হ্যাকারের চুম্বক — 7901 বা অনুরূপ ব্যবহার করুন
  • ইন্টারনেট-মুখী instance-এ Production Console নিষ্ক্রিয় করুন
  • AdminConsole ও Node Manager-এর জন্য HTTPS সক্রিয় করুন
  • Custom Identity / Custom Trust SSL keystore ব্যবহার করুন
  • Authorization Provider-এর মাধ্যমে Role-based access (LDAP/AD ইন্টিগ্রেশন)
  • ত্রৈমাসিক Critical Patch Update (CPU) প্রয়োগ করুন — WebLogic CVE ব্যাপকভাবে exploit করা হয়
  • Network segmentation: Admin network পাবলিক ট্রাফিক থেকে আলাদা

১২. WLST-এর মাধ্যমে সাধারণ Admin কাজ

# Connect
connect('weblogic','password','t3://adminhost:7001')

# Start/stop managed server
start('ms1','Server')
shutdown('ms1','Server')

# Roll cluster (one at a time)
shutdown('ms1','Server', ignoreSessions='false')
start('ms1','Server')

# Check status
domainRuntime()
cd('ServerRuntimes/ms1')
ls()
print cmo.getState()

# Thread dump
cd('/ServerRuntimes/ms1/JVMRuntime/ms1')
print cmo.getThreadStackTraces()

১৩. মনিটরিং ও ট্রাবলশুটিং

  • WLDF (WebLogic Diagnostic Framework): policy + alert সহ অন্তর্নির্মিত মনিটরিং
  • Enterprise Manager Cloud Control: একাধিক domain জুড়ে কেন্দ্রীভূত মনিটরিং
  • যে log file জানা দরকার: AdminServer.log, ms<n>.log, nodemanager.log, access.log, GC log
  • Thread dump: kill -3 <PID> বা WLST-এর মাধ্যমে — "server hung" সমস্যায় আপনার প্রথম টুল
  • Heap dump: memory leak-এর জন্য Eclipse MAT দিয়ে বিশ্লেষণ করুন

১৪. WebLogic + Oracle Database = একসঙ্গে ভালো

WebLogic Oracle Database-এর সঙ্গে কথা বলার জন্য বিশেষভাবে তৈরি। মূল ইন্টিগ্রেশন:

  • RAC-এর জন্য Active GridLink Data Source (FAN event, runtime LB)
  • in-flight transaction failover-এর জন্য Transparent Application Continuity (TAC)
  • ব্যর্থ operation replay-এর জন্য Application Continuity (AC)
  • distributed caching-এর জন্য Oracle Coherence
  • Oracle-এর জন্য tuned JDBC Statement Caching

১৫. WebLogic Patch করা

ত্রৈমাসিক CPU (Critical Patch Update) ও PSU (Patch Set Update)। OPatch-এর মাধ্যমে প্রয়োগ করুন:

cd $ORACLE_HOME/OPatch
./opatch lsinventory
./opatch apply /path/to/patch/12345678
./opatch lsinventory | grep 12345678

binary patch করার আগে সবসময় সব server (Admin + Managed + Node Manager) বন্ধ করুন। আগে non-prod-এ পরীক্ষা করুন।

১৬. প্রোডাকশন সেরা চর্চার সারসংক্ষেপ

  • Production mode সক্রিয়। সবসময়।
  • নিবেদিত host বা VM-এ AdminServer, বিচ্ছিন্ন network
  • cluster-এ managed server, একাধিক machine, load balancer-এর পেছনে
  • auto-restart-এর জন্য কনফিগার করা Node Manager
  • RAC-এর জন্য JDBC Active GridLink
  • GC log + JFR (Java Flight Recorder) সক্রিয়
  • OOM-এ heap ও thread dump
  • proactive alerting-এর জন্য WLDF policy
  • SSL সর্বত্র — Admin Console, Node Manager, inter-server
  • ত্রৈমাসিক CPU patching
  • ত্রৈমাসিক DR drill
  • সাধারণ পরিস্থিতির জন্য ডকুমেন্টেড runbook

শেষ কথা

Oracle WebLogic Server দুই দশকেরও বেশি সময় ধরে যথার্থ কারণেই পছন্দের এন্টারপ্রাইজ Java অ্যাপ্লিকেশন সার্ভার — এটি পরিণত, scalable, নিরাপদ এবং Oracle Database-এর সঙ্গে দৃঢ়ভাবে সংহত। হ্যাঁ, cloud-native জগৎ microservice ও Kubernetes-এর দিকে এগোচ্ছে, কিন্তু transactional, নিয়ন্ত্রিত, mission-critical Java অ্যাপ্লিকেশনের জন্য WebLogic অতুলনীয় থেকে গেছে। WebLogic ভালোভাবে আর্কিটেক্ট ও পরিচালনার দক্ষতা ক্রমেই দুর্লভ — এবং ক্রমেই মূল্যবান।

আপনার প্রতিষ্ঠান যদি WebLogic চালায় — নতুন domain setup, performance tuning, Active GridLink-এর মাধ্যমে RAC ইন্টিগ্রেশন, নিরাপত্তা hardening, সংস্করণ আপগ্রেড, বা একটি একগুঁয়ে প্রোডাকশন সমস্যার ট্রাবলশুটিং যা-ই দরকার হোক — আমি সাহায্য করতে চাই। বাংলাদেশ ও বিশ্বজুড়ে সফটওয়্যার প্রতিষ্ঠান, ব্যাংক, ফার্মা অপারেশন ও ট্রেডিং হাউসের জন্য আমি WebLogic পরিবেশ পরিচালনা করেছি এবং প্রতিটি কাজে গভীর ব্যবহারিক অভিজ্ঞতা নিয়ে আসি।

⚙️ WebLogic Setup বা Support দরকার?

Domain কনফিগারেশন, performance tuning, clustering, RAC ইন্টিগ্রেশন, নিরাপত্তা hardening। ফ্রি পরামর্শ।

📩 ফ্রি পরামর্শ WebLogic মূল্য দেখুন
নাসির উদ্দিন খান — Oracle DBA কনসালট্যান্ট

লেখক পরিচিতি

নাসির উদ্দিন খান সিনিয়র আইটি কনসালট্যান্ট · Oracle DBA · ERP ও AI বিশেষজ্ঞ OCP · Red Hat Certified · MBA · CSV · ১৮+ বছরের অভিজ্ঞতা

নাসির একজন Oracle Certified Professional এবং CSV-সার্টিফায়েড আইটি কনসালট্যান্ট, অবস্থান ঢাকা, বাংলাদেশ। ম্যানুফ্যাকচারিং, ফার্মা, ব্যাংকিং ও হেলথকেয়ার প্রতিষ্ঠানে Oracle ডেটাবেজ অ্যাডমিনিস্ট্রেশন (RAC, Data Guard, RMAN), WebLogic middleware, ERP সিস্টেম ডিজাইন এবং AI ইন্টিগ্রেশন নিয়ে তাঁর ১৮+ বছরের হাতে-কলমে অভিজ্ঞতা রয়েছে।

তথ্যসূত্র ও আরও পড়ুন

এই গাইডটি একাধিক ইন্ডাস্ট্রিতে version 10g থেকে 14c পর্যন্ত WebLogic অ্যাডমিনিস্ট্রেশন অভিজ্ঞতা এবং Oracle-এর অফিসিয়াল WebLogic ডকুমেন্টেশনের ওপর ভিত্তি করে।

সম্পর্কিত লেখা

💬