Posts mit dem Label solution werden angezeigt. Alle Posts anzeigen
Posts mit dem Label solution werden angezeigt. Alle Posts anzeigen

2012-01-09

ADFrc: Warum stretch meine Table nicht ?

Einleitung

In der ADF Project Session 3 in Deutschland im Dezember wurde folgende Frage innerhalb der  Übung  über die  ADF Layout Strategien am häufigsten gestellt:

Warum wird die Tabelle (mit den vorhanden Spalten) nicht auf 100% der Breite und Höhe gestretcht ?

Dieser Eintrag behandelt kurz die wichtigsten Antworten auf die gestellte Frage.

Problem

Simon: "Ich verwende StretchPanelLayout aber trotz dem wird die Tabelle nicht gestretcht !"

Mentor: "Prüfe Deine Seitenstruktur auf Flow Layout !"

09012012_1

Ursache

Einer der häufigsten Ursachen für dieses Erscheinungsbild ist die Tatsache, dass  die Layoutkonzept von Stretch auf Flow gewechselt hat ohne das der Entwickler dies mit bekommen hat.

Sobald eine weitere UI Komponente in eine Facette geworfen wird fügt der Oracle JDeveloper ein PanelGroupLayout - Komponente hinzu und wechselt von der Stretch- auf die Flow - Konzept.

09012012_2_1 09012012_2

Lösung

Aus Stretch wird Flow, wenn sich mehr als eine Komponente im Teilbaum befindet !

Verifiziere Dein Layout im Structure Panel, auch wenn Du den JDeveloper nicht traust !

Problem

Rudolf: "Ich verwende StretchPanelLayout aber trotzdem werden die Spalten meiner Tabelle nicht auf die gesamte Breite verteilt !"

Mentor: "Denke nicht in HTML und CSS (width:100%). Denke in Komponenten !"

09012012_3

Ursache

Wenn ein Bereich gestretch wird, so wird die UI Komponente skaliert, aber nicht automatisch alle weiteren UI Komponenten im Teilbaum. D.h. in diesem Fall, das die PanelCollection auf eine Breite von 100% skaliert wird. Wie die einzelnen Spalten der Table verbreitert werden sollen, ist nicht definiert.

Lösung

Über die Eigenschaft ColumnStretching der UI Komponente Table, kann eine Strategie zum auffüllen, des Leerraumes vorgegeben werden.

09012012_4

af:table - Oracle Fusion Middleware Tag Reference for Oracle ADF Faces (11.1.2)

Geometry Management

This component can be stretched by a parent layout component that stretches its children, e.g. panelStretchLayout. When stretching this component, the only valid setting for autoHeightRows is "-1".

When NOT stretched, autoHeightRows="0" can be used to size the height to the fetch size, which is similar to dimensionsFrom="children". Please refer to 'autoHeightRows' attribute for more information. Use the columnStretching attribute to configure stretching of the children column components

09012012_5

 
Referenzen
JDeveloper Workspace
Oracle Fusion Middleware Tag Reference for Oracle ADF Faces (11.1.2)

2010-02-09

BI Publisher: Verwendung von Adobe Acrobat 9 Pro

Fehlfunktion

Ein erstelltes PDF Formular zur Verwendung als PDF Template innerhalb des BI Publisher erzeugt bei der Generierung der Ausgabe einen Fehler: Die FO-Formatierung war nicht erfolgreich.1

Kontext / Fakten

  1. Oracle BI Publisher 10.1.3.4.0
  2. Adobe Acrobat 9 Pro
  3. BI Publisher Template Viewer: Die FO-Formatierung war nicht erfolgreich.

 

Lösung

Vor dem Speichern des  PDF Formulars im Adobe Acrobat 9 Pro muss die Option:

Kompatibilität herstellen für: Akrobat 5 und höher

eingestellt werden. Diese Option findet man unter:

Erweitert / PDF Optimieren

2

2010-01-15

WLS und OpenLDAP: netscape.ldap.LDAPException: error result (4)

Fehlfunktion

Die Anmeldung an einer Web Applikation schlägt fehl. Im Logfile findet sich folgender StackTrace:

####<DD.MM.YYYY HH:MM Uhr MEZ> <Error> <Console> <blarc4tst> <AdminServer> <[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <> <1263286974352> <BEA-240003> <Console encountered the following error java.lang.RuntimeException: netscape.ldap.LDAPException: error result (4)
    at weblogic.security.providers.authentication.LDAPAtnNameList.handleUnexpectedLDAPException(LDAPAtnNameList.java:183)
    at weblogic.security.providers.authentication.LDAPAtnNameList.advance(LDAPAtnNameList.java:107)
    at weblogic.security.providers.utils.ListerManager.advance(ListerManager.java:233)
    at weblogic.security.providers.authentication.LDAPAtnDelegate.advance(LDAPAtnDelegate.java:1284)
    at weblogic.security.providers.authentication.LDAPAuthenticatorImpl.advance(LDAPAuthenticatorImpl.java:67)
    at weblogic.security.providers.authentication.OpenLDAPAuthenticatorMBeanImpl.advance(OpenLDAPAuthenticatorMBeanImpl.java:235)
    at sun.reflect.GeneratedMethodAccessor476.invoke(Unknown Source)

Kontext / Fakten

  1. WLS 10.3.2
  2. Start des WLS erzeugt N – Java Prozesse des WLS gestartet
  3. OEL 5.3
  4. OpenLDAP Security Provider im WLS
  5. OpenLDAP – Verzeichnis hat mehr als 500 User oder Gruppen
  6. Konfiguration OpenLDAP Secuity Provider ist korrekt

 

Problem

Die Fehlermeldung:

netscape.ldap.LDAPException: error result (4)

besagt das, dass SIZELIMIT der LDAP Anfrage erreicht wurde. Das heißt die LDAP Anfrage vom WLS wird vom OpenLDAP Server abgebrochen, da die Menge der Anfrage über 500 Einträge beinhaltet.

OpenLDAP Sizelimit Default Parameter

If no sizelimit directive is defined the default is 500. Examples:

sizelimit 0

# do not logout idle clients

sizelimit 100

# limit responses to a maximum of 100

# extended form

sizelimit size=100

# behaves exactly the same as sizelimit 100

sizelimit size.soft=100 size.hard=200

# if no client limit = 100

# if client limit > 200 - rejected

# no limits to number of candidates searched

sizelimit size.unchecked=1000

# if no client limit = 500 max returned (default)

# else client limit

# if client limit > 500 - rejected (default)

# if more than 1000 candidates - rejected

Lösung

a.) Optimierung der User und Group Filter im WLS LDAP Provider, so dass eine kleinere Ergebnismenge erzeugt wird, die nicht durch das SIZELIMIT eingeschränkt wird.

1

b.) Das Sizelimit auf dem LDAP Server muss entsprechend der Systemumgebung angepasst werden.

[oracle@telde ~]# su
Passwort:

[root@telde ~]# cd /etc/openldap
[root@telde openldap]# service ldap stop

:

[root@telde openldap]# vi sldapd.conf

{i = Insert following lines}

# set sizelimit over default value (500)
sizelimit 100

{ESC : wq}

[root@telde openldap]# service ldap start

:

[root@telde openldap]# exit

Anmerkung

Weitere Informationen finden sich hier:

Chapter 6. LDAP Configuration

2010-01-07

BI Publisher: Bursting liefert mehrere Dateien zu einer Zustellung

Fehlfunktion

Ein Bericht definiert mit Oracle BI Publisher über mehrere Artikel funktioniert in der Ansicht erfolgreich. Bei Verwendung des Bursting werden aber zum Zustellungsschlüssel  mehrere Dokumente erzeugt, so das die entsprechende Version zum Zustellungsschlüssel immer überschrieben wird.

Kontext / Fakten

  1. Oracle BI Publisher
  2. Bericht wird ohne Bursting fehlerfrei nach dem Zustellungsschlüssel gruppiert
  3. Bericht mit Bursting enthält nicht alle Daten
  4. In der Job – Informationen sind mehrere Zustellungen zur gleichen Zustellungsschlüssel zu sehen

1

Lösung

Die Datenquelle für das Bursting muss nach der Zustellungsschlüssel sortiert werden, innerhalb des Bursting findet keine Gruppierung statt !

2009-12-03

wls: Entsperren eine Benutzer-Accounts

Fehlfunktion

Anmelden an einer Web Applikation mit einem korrekten Kennwort auf einem WLS ist nicht erfolgreich.

Kontext / Fakten

  1. Oracle WebLogic Server
  2. WLS Security Provider
  3. Kennwort ist korrekt, Anmeldung an eine ADF Anwendung wird verweigert
  4. Kennwort wurde im Vorfeld (höchstwahrscheinlich) mehrfach  nicht korrekt eingegeben

Lösung

Entsperren des Benutzers mit der WLS Administration Console.

 

1

2009-10-12

svn: Kann temporäres Verzeichnis nicht finden

Am Wochenende sind zwei meiner Nightly Builds mit einem Fehler abgebrochen, die mich ein wenig sprachlos gemacht haben.

Fehlfunktion

A timer trigger started this job

Updating svn://devbrain.team-pb.de/<costumer>/<customer>-<prjcode>

ERROR: Failed to update svn://devbrain.team-pb.de/<costumer>/<customer>-<prjcode>

org.tmatesoft.svn.core.SVNException: svn: Kann temporäres Verzeichnis nicht finden

at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)

Kontext / Fakten

  1. Hudson CI Server
  2. Subversion
  3. Keine Änderungen an Konfigurationen (build-Scripte) oder Netzwerk

Ursache

Die Erfahrung sagt wenn es keine Änderungen am Netzwerk gab, keine Konfiguration an Scripten / Programmcode, dann ist es ein Datenproblem.

In diesem Fall war die Platte des SVN Server mit 100% belegt. Also nicht der SVN Client hat den Fehler ausgelöst sondern der SVN Server.

Lösung

Festplatte des SVN Server aufräumen und vielleicht endlich mal Nagios einrichten. TELDE Artikel 523 :).

2009-10-05

Oracle Database – dbstart: listener.log - Message 1070 not found

Fehlfunktion

Nach Neustart des Datenbank Servers unter der Verwendung von $ORACLE_HOME/bin/dbstart  ist die Datenbank gestartet, aber der Listener nicht.

Kontext / Fakten

  1. Linux
  2. Verwendung von $ORACLE_HOME/bin/dbstart
  3. Es ist kann keine Verbindung über den Listener aufgebaut werden
  4. Fehlermeldungen in $ORACLE_HOME/listener.log

Message 1070 not found; No message file for product=network, facility=TNSTNS-125
45: Message 12545 not found; No message file for product=network, facility=TNS
TNS-12560: Message 12560 not found; No message file for product=network, facili
ty=TNS
  TNS-00515: Message 515 not found; No message file for product=network, facilit
y=TNS
   Linux Error: 2: No such file or directory

Ursache

Das dbstart - Script hat nicht die richtige Umgebung bzw. das entsprechende ORACLE_HOME für den Start des Listener wird nicht gesetzt.

D.h. die Verwendung des dbstart Scriptes ohne vorherige setzen der Umgebungsvariable ORACLE_HOME ist nicht erfolgreich und erzeugt diesen Fehler. Es ist nicht ausreichend $ORACLE_HOME als Parameter dem Script $ORACLE_HOME/bin/dbstart mitzugeben.

Lösung

Das “oracle” – Script unter /etc/init.d muß so angepasst werden, dass die gesetzte Umgebung beim Aufruf des Start-Scriptes mit su erhalten bleibt.

#!/bin/bash
#
# oracle Init file for starting and stopping
# Oracle Database. Script is valid for 10g and 11g versions.
#
# chkconfig: 35 80 30
# description: Oracle Database startup script

# Source function library.

. /etc/rc.d/init.d/functions

export ORACLE_OWNER="oracle"
export ORACLE_HOME="/u01/app/oracle/product/11.1.0/db_1"

case "$1" in
start)
echo -n $"Starting Oracle DB:"
su -m $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
echo "OK"
;;
stop)
echo -n $"Stopping Oracle DB:"
su -m $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
echo "OK"
;;
*)
echo $"Usage: $0 {start|stop}"
esac

Anmerkung

Dies ist der Grund warum innerhalb der TELDE Umgebung der XMPP Service nach dem Neustart des Servers nicht erreichbar ist. Ohne den Listener kann der Service keinen Connect zur Datenbank aufbauen.