Virtual Development Server: Install Jenkins for Continuos Integration / Delivery / Deployment


For automation of all of my processes I need Jenkins in my development server.

First I had installed Jenkins as Docker container via Vagrant Docker provider. But with this architecture it was very complicated to create docker images and run Docker containers on the Docker host, in this case my Vagrant Virtualbox.

So for simplification I have decided to install Jenkins with the provisioning of the Vagrant Virtualbox via a shell provider in my Vagrantfile:


Advanced Oracle memory profiling using pin tool ‘pinatrace’

In my previous post, I introduced Intel Pin. If you are new to pin, please follow this link to my previous post on how to set it up and how to run it.

One of the things you can do with Pin, is profile memory access. Profiling memory access using the pin tool ‘pinatrace’ is done in the following way:

$ cd ~/pin/pin-3.0-76991-gcc-linux
$ ./pin -pid 12284 -t source/tools/SimpleExamples/obj-intel64/

The pid is (more...)

Introduction to Intel Pin

This blogpost is an introduction to Intel’s Pin dynamic instrumentation framework. Pin and the pintools were brought to my attention by Mahmoud Hatem in his blogpost Tracing Memory access of an oracle process: Intel PinTools. The Pin framework provides an API that abstracts instruction-set specifics (on the CPU layer). Because this is a dynamic binary instrumentation tool, it requires no recompiling of source code. This means we can use it with programs like the Oracle (more...)

Ubuntu: WLAN module for bcm43-chipset gone after reboot…

Today i ran with a laptop into the following problem:
After a reboot the system lost its WLAN:
 # uname -a Linux Notebook 3.13.0-86-generic #131-Ubuntu SMP Thu May 12 23:33:13 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
# lspci | grep 802.11
02:00.0 Network controller: Broadcom Corporation BCM43142 802.11b/g/n (rev 01)
Trying a modprobe wl failed...
There were some posts, which suggested to install kernel-drivers, dkms and so on, but (more...)

Debian dist-upgrade: from 7(wheezy) to 8(jessie): udev…

I was running my own kernel on my laptop. But doing the upgrade from debian 7 to 8, i ran in the following problem:
Since release 198, udev requires support for the following features in
the running kernel:

- inotify(2)            (CONFIG_INOTIFY_USER)
- signalfd(2)           (CONFIG_SIGNALFD)
- accept4(2)
- open_by_handle_at(2)  (CONFIG_FHANDLE)
- timerfd_create(2)     (CONFIG_TIMERFD)
- epoll_create(2)       (CONFIG_EPOLL)
Since release 176, udev requires support for the following features in
the running kernel:

- devtmpfs         (CONFIG_DEVTMPFS)

Please upgrade your (more...)

Debian dist-upgrade: Laptop suspends 30s after boot / startup

After i moved to jessie (Debian 8) my laptop moved to suspend to RAM about half a minute after startup.
There was no message in the logfiles and even worse the resume does not work at all...
The configuration for the suspend was in here:
After changing the lines "HandleLidSwitch" and "HandleSuspendKey" to ignore (more...)

Debian dist-upgrade: ipw2200 firmwares missing…

After the dist-upgrade the ipw2200 wireless chipset drivers are missing.
No more internet access - so i had to use a good old LAN cable ;-)

The fix was very easy:
apt-get install firmware-ipw22x00
rmmod ipw2200
modprobe ipw2200
 and the wireless network is up again...

Debian dist-upgrade 5 (lenny) to 6 (squeeze): insserv: exiting now

After several years i decided to upgrade my old laptop to the current debian version.
The first
apt-get dist-upgrade
ran into the following problem:
insserv: warning: script 'K01hotplug-net' missing LSB tags and overrides
insserv: warning: script 'K01x2goserver' missing LSB tags and overrides
insserv: warning: script 'K01oracle-xe' missing LSB tags and overrides
insserv: warning: script 'S85vpnagentd_init' missing LSB tags and overrides
insserv: warning: script 'S02vpnclient_init' missing LSB tags and overrides
insserv: warning: script '' missing (more...)

The curious case of the missing semctl call

This article is about the internals of how the Oracle database handles transactions. In this case the communication mechanism of foreground sessions to the logwriter process is examined. The tests in this article have been executed using the following versions:
– Oracle database
– Oracle linux 7.2, kernel 4.1.12-61.1.14.el7uek.x86_64 (UEK4)

In my previous article, ‘Transactions and SCNs’, I talked about redo generation, (more...)

Building an RPM for the Oracle database on Oracle Linux 7

Thinking about automation a lot, especially in the context of cloud computing, I have decided to create a small series of related posts that hopefully help someone deploying environments in a fully automated way. As my colleague @fritshoogland has said many times: the only way to deploy database servers (or any other server for that matter) in a consistent way, is to do it via software. No matter how hard you try to set up (more...)

A technical security analysis of the snmp daemon on Exadata

Recently I was asked to analyse the security impact of the snmp daemon on a recent Exadata. This system was running Exadata image version This blog article gives you an overview of a lot of the things that surround snmp and security.

First of all what packages are installed doing something with snmp? A list can be obtained the following way:

# rpm -qa | grep snmp
net-snmp-utils-5.5-54.0. (more...)

Transactions and SCNs

It’s general knowledge that the Oracle database is ACID compliant, and that SCNs or ‘system change numbers’ are at the heart of this mechanism. This blogpost dives into the details of how the Oracle engine uses these numbers.

Oracle database version
Operating system version: OL 7.2, kernel: 4.1.12-61.1.14.el7uek.x86_64 (UEK4)

Redo generation
Whenever DML is executed, redo is generated in the form of ‘change (more...)

Problems with big SGAs (>200G) on Linux

I recently had an issue where a database with 240GB SGA (1 huge shared memory segment) configured with hugepages on a system with 512G RAM was suddenly becoming instable and new logons were denied with these error message:

ORA-01034: ORACLE not available
ORA-27123: unable to attach to shared memory segment
Linux-x86_64 Error: 22: Invalid argument
Additional information: 2667
Additional information: 1736718
Additional information: 215016800256

This was strange because ipcs -a showed all shared memory segments (more...)

Install cx_Oracle for Python

This shows you how to install the cx_Oracle library for Python 2.7 on Fedora Linux. If Fedora has it on the server you can download it with the following yum command:

yum install -y cx_Oracle-5.2.1-11g-py27-1.x86_64.rpm

Currently, you’ll get the following failure because it’s not available in the Fedora repository:

Loaded plugins: langpacks, refresh-packagekit
mysql-connectors-community                                      | 2.5 kB  00:00:00     
mysql-tools-community                                           | 2.5 kB  00:00:00     
mysql56-community                                               | 2.5  (more...)

Oracle Segment Fails

The instance that I’ve built for my students in a Fedora VM is quite stable except for one feature. The feature is the hibernation process of the base operating system. Sometimes when the base operating system hibernates, it causes the Oracle shared memory segment to fail. When that happens you get the following error:

ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process  (more...)

Add systemd Startup Script For CouchDB

Currently, version 2.0 of CouchDB doesn’t come with any form of startup script. I’m sure that as the CouchDB 2 branch becomes more mature and it’s added to the various software repositories startup scripts will be shipped as standard, but until then we have to make do. The below script is a systemd startup script

Little things worth knowing: when a transient ASM disk failure cannot be fixed in time

In the previous blog post I used libvirt and KVM in my lab environment to simulate a transient disk failure and how to recover from it. This post takes this example a step further: I am simulating another disk failure, but this time won’t pretend I can fix the issue and put it back. In other words, I simulate the effect of the disk_repair_time hitting zero.

Most of what I am covering here is an (more...)

VirtualBox Manual DPK Import Failure: Ran out of Virtual Disk

The DPK scripts are simply amazing. I enjoy the flexibility of the new DPK system. I will confess, creating an HCM demo environment with DPK is not as easy as the prior PUM image method, but it is pretty close. As I prepared for OpenWorld 2016, I thought I would download the latest HCM DPK (update 18) and build out a new demo server on my MacBook. Unfortunately, I wasn't able to use the standard (more...)

Replacement of environment variables or properties in Bash

Earlier I wrote about the automatic installation of Fusion Middleware components using response files. A thing that lacked in my scripts was that although I had a FMW_HOME variable set in my enviroment shell script, the response files had the location hard coded in them. At the time I hadn't had the chance to figure out how to do property/variable replacement in shell. I do know how to do it with ANT. But I figured (more...)

Microsoft SQL Server under Linux – Preview

Today something off topic, as I am normally blogging about Oracle Fusion Middleware stuff.

Microsoft SQL Server under Linux - Preview ... many of you (specially the Oracle Guys) might think now "WHAT ????", but its really true.
Some months ago Microsoft announced that they will release a SQL Server Version for Linux and I was lucky to get into the Preview Program.

The installation of the SQL Server under Linux (currently supported under Ubuntu 16 (more...)