Wednesday, July 17, 2019

Error to start up VNC display server on RHEL/CentOS/OL (XIO: fatal IO error 11)


Symptoms:
When trying to start up VNC display server on RHEL/CentOS/OL, it does not start and in the log files ~/.vnc/servername.log appears error messages such as this:
XIO: fatal IO error 11 (Resource temporary unavailable) on X server.

Cause: 
The reason might be several, but it looks like libs not installed and graphical environment not preset.

Solution:
Take a look at the Oracle Linux 7 Administration Guide the steps required to proceed:
See link for the Oracle Doc: https://docs.oracle.com/cd/E52668_01/E54669/html/ol7-vnc-config.html


To configure a VNC server:

Install the tigervnc-server package:
# yum install tigervnc-server

Create the VNC environment for the VNC users.

Each VNC desktop on the system runs a VNC server as a particular user. This user must be able to log in to the system with a user name and either a password or an SSH key (if the VNC desktop is to be accessed through an SSH tunnel).

Use the vncpasswd command to create a password for the VNC desktop. The password must be created by the user that runs the VNC server and not root, for example:

# su - vncuser
$ vncpasswd
Password: password
Verify: password

The password must contain at least six characters. If the password is longer than eight characters, only the first eight characters are used for authentication. An obfuscated version of the password is stored in $HOME/.vnc/passwd unless the name of a file is specified with the vncpasswd command.

Create a service unit configuration file for each VNC desktop that is to be made available on the system.

Copy the vncserver@.service template file, for example:

# cp /lib/systemd/system/vncserver@.service \
/etc/systemd/system/vncserver@\:display.service

where display is the unique display number of the VNC desktop starting from 1. Use a backslash character (\) to escape the colon (:) character.

Each VNC desktop is associated with a user account. For ease of administration if you have multiple VNC desktops, you can include the name of the VNC user in the name of the service unit configuration file, for example:

# cp /lib/systemd/system/vncserver@.service \
/etc/systemd/system/vncserver-vncuser@\:display.service

Edit the service unit configuration files.

Replace any instances of <USER> with the user name of the user that will run the VNC desktop, for example:

ExecStart=/sbin/runuser -l vncuser -c "/usr/bin/vncserver %i"
PIDFile=/home/vncuser/.vnc/%H%i.pid

Optionally, you can add command-line arguments for the VNC server. In the following example, the VNC server only accepts connections from localhost, which means the VNC desktop can only be accessed locally or through an SSH tunnel; and the size of the window has been changed from the default 1024x768 to 640x480 using the geometry flag:

ExecStart=/sbin/runuser -l vncuser -c "/usr/bin/vncserver %i -localhost -geometry 640x480"
PIDFile=/home/vncuser/.vnc/%H%i.pid

Start the VNC desktops.

Make systemd reload its configuration files:
# systemctl daemon-reload

For each VNC desktop, start the service, and configure the service to start following a system reboot. Remember that if you specified a username in the name of the service unit configuration file, you must specify this. Equally, you should use the same display number that you specified for the service unit configuration file name. For example:

# systemctl start vncserver-vncuser@\:display.service
# systemctl enable vncserver-vncuser@\:display.service

Note: If you make any changes to a service unit configuration file, you must reload the configuration file and restart the service.

Configure the firewall to allow access to the VNC desktops.

If users will access the VNC desktops through an SSH tunnel and the SSH service is enabled on the system, you do not need to open additional ports in the firewall. SSH is enabled by default. For information on enabling SSH, see Section 27.3, “Configuring an OpenSSH Server”.

If users will access the VNC desktops directly, you must open the required port for each desktop. The required ports can be calculated by adding the VNC desktop service display number to 5900 (the default VNC server port). So if the display number is 1, the required port is 5901 and if the display number is 67, the required port is 5967.

To open ports 5900 to 5903, you can use the following commands:

# firewall-cmd --zone=zone --add-service=vnc-server
# firewall-cmd --zone=zone --add-service=vnc-server --permanent

To open additional ports, for example port 5967, use the following commands:

# firewall-cmd --zone=zone --add-port=5967/tcp
# firewall-cmd --zone=zone --add-port=5967/tcp --permanent

Configure the VNC desktops.

By default, the VNC server runs the user's default desktop environment. This is controlled by the VNC user's $HOME/.vnc/xstartup file, which is created automatically when the VNC desktop service is started.

If you did not install a desktop environment when you installed the system (for example because you selected Minimal Install as the base environment), you can install one with the following command:

# yum groupinstall "server with gui"

When the installation is complete, use the systemctl get-default command to check that the default system state is multi-user.target (multi-user command-line environment). Use the systemctl set-default command reset the default system state or to change it to the graphical.target (multi-user graphical environment) if you prefer.

The $HOME/.vnc/xstartup file is a shell script that specifies the X applications to run when the VNC desktop is started. For example, to run a KDE Plasma Workspace, you could edit the file as follows:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
#exec /etc/X11/xinit/xinitrc
startkde &

If you make any changes to a user's $HOME/.vnc/xstartup file, you must restart the VNC desktop for the changes to take effect:

# systemctl restart vncserver-vncuser@\:display.service 



Tuesday, July 2, 2019

FRM-93652: The runtime process has terminated abnormally

Symptoms: 

When trying to open a specif forms in Oracle Retail Merchandising System (RMS), the actions new/edit/view option for a warehouse under Organizational Hierarchy, the application crashes with the below error:
FRM-93652: The runtime process has terminated abnormally.

You check the logs under the directory:
<WEBLOGIC_HOME>/user_projects/domains/RMS/servers/WLS_FORMS/logs/formsapp-diagnostic.log

You see at the end a stack trace file
[2019-07-02T10:16:38.768-03:00] [WLS_FORMS] [NOTIFICATION] [FRM-93658] [oracle.forms.servlet] [tid: 12] [userId: <anonymous>] [ecid: 0000Mimp7mk5UcG6yzEgMG1T0h6D0001hT,0] [APP: formsapp#11.1.2] [FORMS_SESSION_ID: WLS_FORMS.formsapp.37] [SRC_CLASS: oracle.forms.servlet.RunformProcess] [SRC_METHOD: fromFrmwebToODL] Stack trace for runtime process 20129 is being written to file /u01/ofm/10.3.6-RMS/WLS/asinst_1/FormsComponent/forms/trace/frmweb_dump_20129.


Looking at the stack trace file frmweb_dump_20129 says:
Last Trigger  FORM/BLOCK/FIELD: FM_WAREHSE.B_WAREHOUSE.<NULL>
Last Trigger: PRE-RECORD - (In Progress)

Last Builtin: OPEN_FORM - (Successfully Completed)


Cause: 
First of all, compile all forms. If the action has not solved the problem, then see below another possible cause.

As given on the Doc ID 1361447.1, the problem is related to the script 'forms.fmb.sh' included in the release, having been modified to include compile_all=Y, before compiling the forms.


Solution:
To implement the solution, please execute the following steps:

1. Download RMS 13.2.2 Patch 12795707.
2. Copy compilation scripts from <p12795707_132_Generic.zip>/CDROM/rms1322apppatch.zip/app-patch/13.2/forms_scripts folder to INSTALL_DIR/base/forms_scripts folder.
3. Recompile complete RMS 13.2.2 application.
4. Retest the issue in a test environment.
5. Migrate the fix to other environments as needed.



Configure the Oracle DB Access Control List to avoid error like ORA-24247: network access denied

Symptoms:  You try to make external connections from the Oracle Database and receive erros like ORA-24247: network access denied by access c...