I am Tomas Vitvar. I have been working in computer software industry for over 25 years currently with Oracle as a Technology Architect Director for large-scale integration and cloud projects. I also hold an associate professor position at the Czech Technical University in Prague where I look after Web engineering program as a lecturer and a chair in two post-graduate courses on middleware, integration, and infrastructure for the Web. Read More…

Recent Posts

Inline swimlanes.io code in Hugo, Apr 27, 2022

I often need to embed a simple sequence diagram into a page and I came across swimlanes.io which does exactly what I need. You can define a sequence diagram, download an image or embed a diagram into a page. I like the simplicity of it, however, I sometimes need to make a slight modifications to my sequence diagram, for example, to highlight a specific part of it by changing a color of a line, etc. Read More…

Oracle RAC DB Behind Nginx Proxy, Apr 26, 2022

If you use Oracle Real Application Clusters (RAC) you most likely also use Single Client Access Name (SCAN) addresses to connect to your DB. A SCAN address usually resolves to a number of IPs where each IP uses a dedicated SCAN listener. Now assume that there is no connectivity from your client network to the DB network, for example, due to network routing restrictions. However, you can access a node that has such connectivity. Read More…

SOA Service Multithreading Problem, Jul 8, 2019

When you develop your SOA services, you usually use a language such as BPEL (Business Process Execution Language) to implement a service orchestration logic. BPEL is a powerful language to implement any control flow logic you like as well as call downstream services by using SOAP or REST interfaces. It also gives you an opportunity to call a custom function developed in Java provided by a bespoke class loaded in your SOA platform. Read More…

Service Outbound Call and DNS Resolver Timeout, Jun 25, 2019

In order to maintain your integration platform’s resilience, you should have timeouts on your services’ outbound calls. When you do, any long running outbound service call won’t block your threads. And it is important to have enough threads in your thread pool at any point in time as otherwise your integration middleware may be blocked and process no requests. These are obviously caveats of blocking I/O, when your integration middleware uses asynchronous (non-blocking) calls, the situation is different. Read More…

Weblogic DMS Metric Collector, Jun 7, 2019

I often need to evaluate performance of Weblogic apps, components and services and I use Weblogic Dynamic Monitoring Service that provides a massive amount of sensors. You can access DMS in a number of ways, such as Weblogic Scripting Tool (WLST), Java API or DMS Spy application. As it was a cumbersome process to always craft a Java program to retrieve a metric from DMS, I thought it would be much easier to retrieve metrics directly via DMS Spy app by using a command line utility just by saying which metrics from which DMS table you need. Read More…