Skip to content
CMO & CTO
CMO & CTO

Closing the Bridge Between Marketing and Technology, By Luis Fernandez

  • Digital Experience
    • Experience Strategy
    • Experience-Driven Commerce
    • Multi-Channel Experience
    • Personalization & Targeting
    • SEO & Performance
    • User Journey & Behavior
  • Marketing Technologies
    • Analytics & Measurement
    • Content Management Systems
    • Customer Data Platforms
    • Digital Asset Management
    • Marketing Automation
    • MarTech Stack & Strategy
    • Technology Buying & ROI
  • Software Engineering
    • Software Engineering
    • Software Architecture
    • General Software
    • Development Practices
    • Productivity & Workflow
    • Code
    • Engineering Management
    • Business of Software
    • Code
    • Digital Transformation
    • Systems Thinking
    • Technical Implementation
  • About
CMO & CTO

Closing the Bridge Between Marketing and Technology, By Luis Fernandez

WebLogic at Scale: Realities and Rituals

Posted on August 15, 2012 By Luis Fernandez
\n
\n

What does scale look like on WebLogic Server when the traffic graph turns ugly and the pager will not stop? Where do clusters actually help and where do they just move the pain around? What parts of the console matter on a weekday at noon and what parts matter at three in the morning when the whole thing is wobbling? If you are spinning up WebLogic 12c and nodding along to Oracle�s slides, how do you turn that into something that survives Mondays, promos, and a cold database? Let�s talk about the realities and rituals that keep WebLogic alive when the volume rises.

\n\n\n\n

Short version first. Scale is earned in setup and paid for in habits.

\n\n\n\n

What do we mean by scale on WebLogic

\n\n\n\n

People say scale and think servers. On WebLogic, scale starts with work management and ends with state. The heart of it is the self tuning thread pool with Work Managers, capacities, and request classes. Do not yank on old blog advice about execute queues. Work Managers decide which requests get attention, which ones wait, and which ones get throttled before they take the house down. That leaves you with the quieter battles. JDBC pools with honest testing, JMS stores that write fast and survive a reboot, and HTTP session replication that does not turn every page view into a broadcast. Scale also means picking unicast for cluster messaging unless you live on a network that truly likes multicast. The admin server stays out of the cluster. The cluster talks to a load balancer that respects sticky sessions, keepalives, and health checks that do not lie. Everything else is just costumes for the same old play.

\n\n\n\n

Scale is not more servers. It is fewer bottlenecks.

\n\n\n\n

Cluster truths we learn the hard way

\n\n\n\n

Two managed servers are not a plan. Whole server migration and service migration are what make a cluster useful. If a box dies, who takes the JMS and JTA work, who takes the transaction log, who owns the migratable target next. That is a decision you automate long before you need it. Node Manager is not a checkbox; it is the hands that actually move services when your script will not. For sessions, the default in memory replication is fine for small apps, but once the payload grows, look at Coherence Web or just store less in the session. You do not want to ship big blobs between nodes on every click. For JMS, a File Store is usually faster than a JDBC Store. Keep the store on a disk that does not go on vacation under I O spikes. Set synchronous write policy to direct write on sane filesystems. And remember, unicast keeps the cluster calm where multicast becomes a campus project with the network team.

\n\n\n\n

Clusters do not fix bad code or a slow database. They only make the blast radius wider.

\n\n\n\n

Tuning knobs that actually move the needle

\n\n\n\n

Start with database connections. Set Initial Capacity to match normal traffic so the pool is warm after a restart. Set Max Capacity to what the database can truly accept, not what looks pretty. Turn on Test Connections on Reserve with the right SQL so stale connections do not wait for a user to find them. Keep Statement Cache Size sane. On the thread side, let the self tuning pool run the show and use Work Managers with constraints tied to rates or fair shares. For garbage collection, decide between JRockit and HotSpot carefully. Many of us still run JRockit for its tools and steady feel, but the HotSpot line has picked up strong CMS and G1 options. Watch your GC logs. Long pauses do not care about marketing pages. For JMS, set Redelivery Delays, Expiration Policies, and Quotas so that a wave of bad messages does not choke the good ones. These are the knobs that make a day calm or loud.

\n\n\n\n

The best tuning is removing work you do not need to do.

\n\n\n\n

Operational rituals that pay rent

\n\n\n\n

Rituals beat cleverness. Keep a WLST script book for create, destroy, clone, and promote. Version control the entire domain configuration. Practice rolling restarts until they are boring. Run a weekly soak test with real data and real timeouts. Collect JMX metrics into Graphite or Ganglia or Nagios and set alerts that reflect user pain, not server pride. Track stuck threads, hogging threads, EJB pool wait times, JDBC waits, and JMS pending counts. Keep access logs and server logs in one place with Splunk or Logstash. Use health checks that do more than return hello; hit a light database query or a cached page to prove the stack is awake. These small habits make a heavy platform feel light when traffic arrives uninvited.

\n\n\n\n

Rituals keep you from making up a plan during an outage.

\n\n\n\n

When things go sideways

\n\n\n\n

Every WebLogic shop learns the stuck thread drill. The admin console turns yellow, users slow to a crawl, and everyone stares at the Thread Dump button. Most stuck threads are not WebLogic being fussy. They are database calls waiting, external services timing out, or deadlocks in app code. Set sane connect and read timeouts everywhere. Cap Work Managers for risky endpoints so one hot spot cannot starve static pages and checkout. Watch the JTA timeout and be honest about it. Long transactions are a tax on the whole cluster. If JMS starts paging to disk, you are past the warning zone. Either scale consumers or route bad messages to a DLQ. And remember, do not restart the admin server in a panic. The cluster can keep serving while you investigate. Your logs will tell you more than your feelings.

\n\n\n\n

Blame is not a fix. Proof is.

\n\n\n\n

Cost math and licensing reality

\n\n\n\n

People whisper about WebLogic licensing because the math can bite. Oracle prices by processor with core factors by CPU family. If you run on a big virtual farm, soft partitions do not always count the way you think. Read the policy. If you want strict caps, use a setup that Oracle recognizes or size bare metal and keep receipts. For many shops, the business case lands on fewer bigger nodes with solid vertical scaling, backed by honest capacity tests. If your team just needs a dev box, the OTN license gets you running for free within its limits. Production is a different story. Put the calculator on the table, include support, and compare real throughput per core rather than server counts. It is less romantic but far safer.

\n\n\n\n

Licensing surprises cost more than any server.

\n\n\n\n

Running WebLogic on other people�s computers

\n\n\n\n

Yes, WebLogic runs just fine on EC2 and friends. Keep an eye on storage choices. A File Store on networked volumes can feel sleepy under burst. Local ephemeral volumes are snappy but temporary. Plan backups or pick the tradeoff and accept it. Multicast is not your friend there, so pick unicast for clustering. Health checks and security groups need extra love. Watching disks and network with CloudWatch is good, but keep your own JMX metrics streaming to a place you control. If you go with Oracle Exalogic, the hardware is friendly to WebLogic, but the same rules apply: Work Managers, JDBC limits, and message stores decide your day more than the logo on the rack.

\n\n\n\n

The cloud is just someone else�s ops checklist with your name on it.

\n\n\n\n

Deployments that do not wake the room

\n\n\n\n

Keep immutable artifacts moving from build to prod. Use wldeploy, WLST, or the Maven plugin to make deployment repeatable. Stage to all nodes, verify, then activate with rolling enabled and traffic drained per server. Keep database changes backward friendly for at least one deployment so that a rollback is not theater. Use versioned datasources and plan files to set passwords and environment specifics cleanly. A tiny thing that pays huge: a pre deployment health gate that stops a rollout if stuck threads or JDBC waits are above your threshold. With those guardrails, you can deploy during the day and keep dinner plans.

\n\n\n\n

Confidence beats a late night maintenance window.

\n\n\n\n

Tools that help without owning you

\n\n\n\n

Pick a few observability tools and learn them well. JRockit Mission Control still gives some of the best views of memory and threads when you run JRockit. On HotSpot, VisualVM and Java Mission Control are handy. For app and JVM level insight without reading tea leaves, tools like AppDynamics or New Relic can be worth their weight when you need flame charts from a user click to a SQL plan. Tie it all together with Nagios or Zabbix for alerting, and Splunk for search. Keep WLST snippets ready to pull datasource metrics, JMS destinations, and thread states into your dashboards. Tools do not fix design, but they shorten mean time to truth.

\n\n\n\n

Graph first, guess second.

\n\n\n\n

Timeless lessons we keep relearning

\n\n\n\n

Keep the AdminServer safe and boring. Test failover with people watching. Be honest about timeouts. Prefer idempotent operations so retries do not burn you. Write less to the HTTP session. Use DLQs and do not let bad messages pile up. Cap queues. Cap pools. Cap everything that can pile up and starve neighbors. Keep configs in source control, keep secrets out of it, and rotate them on a schedule. Put logging and metrics near the app not just in the infrastructure. When you see trouble, cut the blast radius with circuit breakers and traffic shaping via Work Managers. And when something feels off, take a thread dump and a heap histogram before you touch anything. Evidence beats instincts when the pager is loud.

\n\n\n\n

Simple beats clever when traffic hits.

\n\n\n\n

Scale on WebLogic is not magic, it is contracts you keep with yourself every day.

\n
\n
Software Architecture Software Engineering

Post navigation

Previous post
Next post
  • Digital Experience (94)
    • Experience Strategy (19)
    • Experience-Driven Commerce (5)
    • Multi-Channel Experience (9)
    • Personalization & Targeting (21)
    • SEO & Performance (10)
  • Marketing Technologies (92)
    • Analytics & Measurement (14)
    • Content Management Systems (45)
    • Customer Data Platforms (4)
    • Digital Asset Management (8)
    • Marketing Automation (6)
    • MarTech Stack & Strategy (10)
    • Technology Buying & ROI (3)
  • Software Engineering (310)
    • Business of Software (20)
    • Code (30)
    • Development Practices (52)
    • Digital Transformation (21)
    • Engineering Management (25)
    • General Software (82)
    • Productivity & Workflow (30)
    • Software Architecture (85)
    • Technical Implementation (23)
  • 2025 (12)
  • 2024 (8)
  • 2023 (18)
  • 2022 (13)
  • 2021 (3)
  • 2020 (8)
  • 2019 (8)
  • 2018 (23)
  • 2017 (17)
  • 2016 (40)
  • 2015 (37)
  • 2014 (25)
  • 2013 (28)
  • 2012 (24)
  • 2011 (30)
  • 2010 (42)
  • 2009 (25)
  • 2008 (13)
  • 2007 (33)
  • 2006 (26)

Ab Testing Adobe Adobe Analytics Adobe Target AEM agile-methodologies Analytics architecture-patterns CDP CMS coding-practices content-marketing Content Supply Chain Conversion Optimization Core Web Vitals customer-education Customer Data Platform Customer Experience Customer Journey DAM Data Layer Data Unification documentation DXP Individualization java Martech metrics mobile-development Mobile First Multichannel Omnichannel Personalization product-strategy project-management Responsive Design Search Engine Optimization Segmentation seo spring Targeting Tracking user-experience User Journey web-development

©2025 CMO & CTO | WordPress Theme by SuperbThemes