Jul 30, 2018

Where to find the oracle-database-ee-18c-1.0-1.x86_64.rpm package?

After writing about the release of Oracle database 18c i wanted to download
oracle-database-ee-18c-1.0-1.x86_64.rpm
to try the rpm-based installation.
But this rpm is not included in
LINUX.X64_180000_db_home.zip
The oracle documentation shows:
 But on OTN and Delivery Cloud only the zipfile without the rpm can be downloaded...

So let's see, when the download pages are updated...

(Three months later: https://dietrichschroff.blogspot.com/2018/11/oracle-database-18c-installation-via.html)

Jul 28, 2018

Oracle Weblogic 12c: Extracting the complete configuration via wlst.sh python script

If you want to get all information out of a weblogic server via wlst.sh than you can use the following script:
# written by Dietrich Schroff 2018
import sys


OutputFile='myfile.txt'
sys.stdout = open(OutputFile,'w')
connect('weblogic','mypasswd','t3://localhost:7001')
depth=0

def loopOverAllSubdirectories(goIntoThisDirectory,depth):
    depth=depth+1
    cd(goIntoThisDirectory)
    print depth," "*depth*2,goIntoThisDirectory
    try:
            completeInput=ls()
            inputArray=completeInput.split('\n')
        allParameters=[ x for x in inputArray if (not ("dr--" in x) or ("drw-" in x)) ]
        for Parameter in allParameters:
            if Parameter != "" :
                print depth," "*depth*2,Parameter
            allDirectoriesWrongFormat=[ x for x in inputArray if (("dr--" in x) or ("drw-" in x)) ]
            allDirectoriesWrongFormat2=[x.replace('dr--', '') for x in allDirectoriesWrongFormat]
            allDirectoriesToManyBlanks=[x.replace('drw-', '') for x in allDirectoriesWrongFormat2]
            allDirectories=[x.lstrip().rstrip() for x in allDirectoriesToManyBlanks]
        for Directory in allDirectories:
            if depth < 5 :
                loopOverAllSubdirectories(Directory,depth)
            cd('..')
    except:
        cd('..')

domainRuntime()
print "domainRuntime"
print "###############################################"
loopOverAllSubdirectories('/',0)
serverConfig()
print "ServerConfig"
print "###############################################"
loopOverAllSubdirectories('/',0)
This is a recursiv program which steps into all directories until a level of 5. On my weblogic server this scripts ran for more than two minutes:
# time ./wlst.sh myScript.py > /dev/null 

real    2m35.241s
user    0m29.405s
sys    0m4.259s
I tried unlimited depth, but then i had to stop at level 1500, because i think, that it will never stop ;-).

The output file would look like this:
domainRuntime
###############################################
1    /
1    -r--   ActivationTime                               Fri Feb 23 13:03:05 EST 2018  
1    -r--   MigrationDataRuntimes                        null  
1    -r--   Name                                         ovm_domain  
1    -rw-   Parent                                       null  
1    -r--   ServiceMigrationDataRuntimes                 null  
1    -r--   Type                                         DomainRuntime  
1    -r-x   preDeregister                                Void :   
1    -r-x   restartSystemResource                        Void : WebLogicMBean(weblogic.management.configuration.SystemResourceMBean)  
2      AppRuntimeStateRuntime
2      drw-   AppRuntimeStateRuntime
3        AppRuntimeStateRuntime
3        -r--   ApplicationIds                               java.lang.String[oracle.sdp.client#2.0@12.1.3, oracle.pwdgen#2.0@12.1.3, owasp.esapi#2.0@12.1.3, oracle.wsm.seedpolicies#2.0@12.1.3, odl.clickhistory#1.0@12.1.3, odl.clickhistory.webapp#1.0@12.1.3, oracle.jrf.system.filter, oracle.jsp.next#12.1.3@12.1.3, oracle.dconfig-infra#2.0@12.1.3, orai18n-adf#11@11.1.1.1.0, oracle.adf.dconfigbeans#1.0@12.1.3.0.0, adf.oracle.domain#1.0@12.1.3.0.0, adf.oracle.businesseditor#1.0@12.1.3.0.0, oracle.adf.management#1.0@12.1.3.0.0, adf.oracle.domain.webapp#1.0@12.1.3.0.0, jsf#2.1@2.1.7-01-, jstl#1.2@1.2.0.1, UIX#11@12.1.3.0.0, ohw-rcf#5@12.1.3.0.0, ohw-uix#5@12.1.3.0.0, oracle.adf.desktopintegration.model#1.0@12.1.3.0.0, oracle.adf.desktopintegration#1.0@12.1.3.0.0, oracle.bi.jbips#11.1.1@0.1, oracle.bi.composer#11.1.1@0.1, oracle.bi.adf.model.slib#1.0@12.1.3.0.0, oracle.bi.adf.view.slib#1.0@12.1.3.0.0, oracle.bi.adf.webcenter.slib#1.0@12.1.3.0.0, state-management-provider-memory-rar-12.1.3, wsil-wls#12.1.3.0.0, DMS Application#12.1.3.0.0, coherence-transaction-rar, ovm_core, ovm_console, ovm_help]  
3        -r--   Name                                         AppRuntimeStateRuntime  
3        -r--   Type                                         AppRuntimeStateRuntime  
3        -r-x   getCurrentState                              String : String(appid),String(moduleid),String(subModuleId),String(target)  
3        -r-x   getCurrentState                              String : String(appid),String(moduleid),String(target)  
[.....]
4          JVMRuntime
4          drw-   AdminServer
5            AdminServer
5            -r--   HeapFreeCurrent                              447991664  
5            -r--   HeapFreePercent                              90  
5            -r--   HeapSizeCurrent                              841109504  
5            -r--   HeapSizeMax                                  4151836672  
5            -r--   JavaVMVendor                                 Oracle Corporation  
5            -r--   JavaVendor                                   Oracle Corporation  
5            -r--   JavaVersion                                  1.7.0_151  
5            -r--   Name                                         AdminServer  
5            -r--   OSName                                       Linux  
5            -r--   OSVersion                                    4.1.12-94.3.9.el7uek.x86_64  
5            -r--   Type                                         JVMRuntime  
5            -r--   Uptime                                       22612965  
5            -r-x   preDeregister                                Void :   
# wc -l myfile.txt 
19787 myfile.txt
Nearly 20.000 parameters... not bad...

Jul 25, 2018

Oracle 18c database is released for Linux (on premise)

After my posting nearly a week ago about the published 18c documentation on monday the binaries for Oracle 18c database were released:


and

 Here the link to the download page: oracle.com

In one of the next postings i will try a rpm installation...

Jul 16, 2018

Oracle Database 18c: Documentation released!

Today i surfed to docs.oracle.com and there i found the documentation for oracle database 18c:


In march 2018 i wrote about the new installation procedure of oracle database 18c via rpm, which was announced inside the "new features".

The installation guide for Linux contains now the commands for installing the database via rpm. Here a screencopy of chapter 11:
 rpm -ivh oracle-ee-db-18.1.0.0.0-1.x86_64.rpm
This command creates the Oracle home at the location /opt/oracle/product/18.0.0.0.0-1/dbhome_1.
Cool!

The next step is to run the dbca:
7 The screen displays information that prompts you to create a database by using Oracle Database Configuration Assistant (Oracle DBCA) in silent mode.
[...]
8 Log in as the oracle user and run Oracle DBCA in silent mode to create the database.
[...]
Oracle DBCA creates the Oracle Database listener, the Oracle Database instance, starts the instance, and completes the Oracle Database creation process. Review the status information that is displayed on your screen.

Here the link to docs.oracle.com chapter 11 "Running RPM Packages to Install Oracle Database".

Jul 15, 2018

Oracle SOA Suite: Profiles (SOA Foundation, BPEL only, Orchestration, Enterprise, BPM Classic, ...)

Inside the Enterprise Manager (URL: http://yourhost:7001/em) you can configure SOA Suite profiles:

Choose "Common Properties"

Click on "Change Profile"
The oracle documentation shows the following:

The full set of adapters:
  • file,
  • FTP, 
  • database, 
  • JMS, 
  • MQSeries, 
  • AQ, 
  • E-Business Suite, 
  • User Messaging Service, 
  • socket, 
  • LDAP, 
  • Coherence, 
  • MSMQ,
  • JDE
The limited set of adapters:
  • file, 
  • FTP, 
  • database, 
  • JMS, 
  • MQSeries, 
  • AQ, 
  • E-Business Suite,
  • User Messaging Service

Jul 9, 2018

Docker: Networking with docker swarm: creating new subnets/gateways/...

In this posting i explained how to configure the network for a container on a docker machine.
If you want to do this for a docker swarm, you have to change the commands. The network driver "bridge" does not work in swarm mode:
(How to run a container inside a swarm take a look here)

docker service create  --network mybrigde --name helloworld alpine ping 192.168.178.1

Error: No such network: mybrigde
Even if you create your bridge on every node.

You have to configure an overlay network:
alpine:~# docker service create  --network myoverlay --name helloworld alpine ping 192.168.178.1
And then you can deploy your service like this:

alpine:~# docker service create --replicas 2 --network myoverlay  --name helloworld alpine ping 10.200.0.1

ij613sb26sfrgqknq8nnscqeg

overall progress: 2 out of 2 tasks 

1/2: running   [==================================================>] 

2/2: running   [==================================================>] 

verify: Service converged


Verification:

alpine:~# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

6193ebb361fa        alpine:latest       "ping 10.200.0.1"   12 seconds ago      Up 11 seconds                           helloworld.1.9zoyocdpsdthuqmlk4efk96wz

alpine:~# docker logs 6193ebb361fa

PING 10.200.0.1 (10.200.0.1): 56 data bytes

64 bytes from 10.200.0.1: seq=0 ttl=64 time=0.344 ms

64 bytes from 10.200.0.1: seq=1 ttl=64 time=0.205 ms

64 bytes from 10.200.0.1: seq=2 ttl=64 time=0.184 ms
On each docker swarm node you can find now:
node2:~# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
5019841c7e25        bridge              bridge              local
6e795c964251        docker_gwbridge     bridge              local
9d9fa338a975        host                host                local
273dc1ddbc57        mybrigde            bridge              local
siiyo60iaojs        myoverlay           overlay             swarm
9ff819cf7ddb        none                null                local

and after stopping the service (docker service rm helloworld) the overlay "myoverlay" is removed again:
node2:~# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
5019841c7e25        bridge              bridge              local
6e795c964251        docker_gwbridge     bridge              local
9d9fa338a975        host                host                local
273dc1ddbc57        mybrigde            bridge              local
9ff819cf7ddb        none                null                local


Jul 2, 2018

Oracle Database Software Downloads: 18c released

Ok - not the database binaries but the Oracle Database 18c Release 1 Client is released:

Only for windows and linux - not really suprising, but that shows, which platforms are well supported ;-)

The documentation can be found here.


The documentation is for solaris, too - but without binaries this sounds a little bit strange:

Jul 1, 2018

Docker: Network configuration: How to customize the network bridge and use my own subnet / netmask / CiDR

In my last posting i described how to configure the network settings of a container via docker command line:
--net none
--net bridge
Now i want to try to change the subnet from the standard 172.17.0.0/16 to another ip range.

There are some tutorials out there which say:

docker run -it  --net bridge  --fixed-cidr "10.100.0.0/24"  alpine /bin/ash
unknown flag: --fixed-cidr
but this doesa not work any more.

First you have to create new network:
docker network create --driver=bridge --subnet=10.100.0.0/24  --gateway=10.100.0.1 mybrigde
6249c9a5f6c6f7e36e7e61009b9bde7ac338173d8e222e214a65b9793d36ad6c
Just do a verification:
docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
a00386e6a5bc        bridge              bridge              local
9365e4a966d0        docker_gwbridge     bridge              local
9d9fa338a975        host                host                local
6249c9a5f6c6        mybrigde            bridge              local
9ff819cf7ddb        none                null                local
and here we go:

alpine:~# docker run -it  --network  mybrigde  alpine /bin/ash
/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:0A:64:00:02  
          inet addr:10.100.0.2  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1156 (1.1 KiB)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
Removing the network bridge is easy:
docker network rm mybrigde


and narrowing the IP range can be done like this:
alpine:~# docker network create --driver=bridge --subnet=10.100.0.0/24  --ip-range=10.100.0.128/25 --gateway=10.100.0.1 mybrigde
b0ba1d963a6ca3097d083d4f5fd979e0fb0f91f81f1279132ae773c06f821396
Just do a check:
alpine:~# docker run -it  --network  mybrigde  alpine /bin/ash
/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:0A:64:00:80  
          inet addr:10.100.0.128  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1016 (1016.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
The ip address of the container is set to 10.100.0.128 as configured with --ip-range 10.100.0.128/25.

If you are not familiar with the CIDR notation, just us this nice online tool (http://www.subnet-calculator.com/cidr.php):