Wednesday, June 7, 2017

Enabling JDK logging during the synchronization process

https://www.ibm.com/support/knowledgecenter/en/SSQP76_8.9.0/com.ibm.odm.distrib.troubleshooting/topics/tsk_synch_traces.html

When you synchronize rules between Rule Designer and Decision Center, you can use the JDK logger to log synchronization requests, for debugging purposes.

Procedure

  1. To configure the logging for Rule Designer, add the following classes and logging level to your logging.properties file:
    .level=FINE
    ilog.rules.synchronization.level=FINE
    ilog.rules.model.level=FINE
    ilog.rules.common.rs4jutils.level=FINE
    ilog.rules.dataaccess.level=FINE
    For example, the following code shows a sample configuration for the Rule Designer logging.properties file:
    handlers=java.util.logging.FileHandler,java.util.logging.ConsoleHandler
    java.util.logging.ConsoleHandler.level=INFO
    java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
    
    java.util.logging.FileHandler.level=FINE
    java.util.logging.FileHandler.pattern=//.log
    
    # Write 10MB before rotating this file
    java.util.logging.FileHandler.limit=10000000 
    
    # Number of rotating files to be used
    java.util.logging.FileHandler.count=4
    java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
    
    .level=FINE
    ilog.rules.synchronization.level=FINE
    ilog.rules.model.level=FINE
    ilog.rules.common.rs4jutils.level=FINE
    ilog.rules.dataaccess.level=FINE
  2. To configure the logging for Decision Center, add the following classes and logging level to your logging.properties file:
    .level=INFO
    ilog.rules.teamserver.level=FINE
    ilog.rules.synchronization.level=FINE
    ilog.rules.model.level=FINE
    ilog.rules.common.rs4jutils.level=FINE
    ilog.rules.dataaccess.level=FINE
    For example, the following code shows a sample configuration for the Decision Center logging.properties file:
    handlers=java.util.logging.FileHandler,java.util.logging.ConsoleHandler
    java.util.logging.ConsoleHandler.level=INFO
    java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
    
    java.util.logging.FileHandler.level=FINE
    java.util.logging.FileHandler.pattern=//.log
    
    # Write 10MB before rotating this file
    java.util.logging.FileHandler.limit =10000000 
    
    # Number of rotating files to be used
    java.util.logging.FileHandler.count=4
    java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
    
    .level=INFO
    ilog.rules.teamserver.level=FINE
    ilog.rules.synchronization.level=FINE
    ilog.rules.model.level=FINE
    ilog.rules.common.rs4jutils.level=FINE
    ilog.rules.dataaccess.level=FINE
  3. To activate traces in Rule Designer, open the file odm_install_dir/eclipse.ini.
  4. After -vmargs, add the following argument, with the relevant values for the file path and the file name of the Rule Designer logging.properties file:
    -Djava.util.logging.config.file=/file_path/logging.properties
  5. To activate traces in Decision Center, add the following argument in the JVM that you use to start the application server, with the relevant values for the file path, and the file name of the Decision Center logging.properties file:
    -Djava.util.logging.config.file=/file_path/logging.properties
  6. If you cannot identify the cause of the error from the log messages, provide the following information to IBM® Customer Support:
    • The .log files produced by the JDK logger.
    • The .log file in the .metadata directory of your Eclipse workspace.

Friday, October 14, 2016

Targets

Responsibilities
  • Support the sales team by taking a consultative role, including making architectural recommendations, troubleshooting configuration issues, and managing correspondence with other functional units by implementing IBM ODM solutions
  • Articulate and educate on technical and architectural concepts to a variety of audiences, including developers, architects, IT operations professionals, and senior IT management
  • Design and develop rules and event solutions using IBM ODM (Operational Decision Management), iLog, JRules, BRMS.
  • Sell the value of your capabilities using multiple formats/channels, including phone, presentation, and live/online product demonstrations
  • Provide technical oversight and leadership on projects while effecting an enterprise-wide view of business and appreciation for strategy, processes and enabling technologies
  • iLog integration, iLog customization, Rule/Decision Service optimization
  • Manage & co-ordinate practice thought leadership initiatives
  • Foster teamwork and inclusion among all employees - across locations, cultures and geographies
Deliverables
  • Create and deliver custom demonstrations to support the sales cycle
  • Ability to quantify business value (cost-benefit and ROI analysis) and develop business cases for process improvement initiatives
  • Ability to work on complex business problems where analysis of situations or data requires an evaluation of intangible variance factors
  • Perform technical discovery with customer prospects and quickly architect/build proposed solutions using your capabilities
  • Successfully manage and execute technical proof of concepts (POCs), on-site or remote
  • Able to respond with functional experience concerning IBM ODM, WODM or JRules / ILOG and/or other industry standard Business Rules Engines such as Blaze advisor, Corticon, Pega, Drools
  • Responsible for representing yourself to customers and at field events such as conferences, seminars, etc.
  • Support Marketing with developer marketing and evangelism activities, including writing blogs, participating in demo-driven webinars, and speaking at industry events

Tuesday, August 30, 2016

ODM Working Random Links to Continue..IGNORIEREN




























Tuesday, July 19, 2016

install cert propertiessuncertpathbuilderexception: unable to find valid certification path to requested target

https://github.com/escline/InstallCert/blob/master/InstallCert.java

/*
* Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Sun Microsystems nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* Originally from:
* http://blogs.sun.com/andreas/resource/InstallCert.java
* Use:
* java InstallCert hostname
* Example:
*% java InstallCert ecc.fedora.redhat.com
*/
import javax.net.ssl.*;
import java.io.*;
import java.security.KeyStore;
import java.security.MessageDigest;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
/**
* Class used to add the server's certificate to the KeyStore
* with your trusted certificates.
*/
public class InstallCert {
public static void main(String[] args) throws Exception {
String host;
int port;
char[] passphrase;
if ((args.length == 1) || (args.length == 2)) {
String[] c = args[0].split(":");
host = c[0];
port = (c.length == 1) ? 443 : Integer.parseInt(c[1]);
String p = (args.length == 1) ? "changeit" : args[1];
passphrase = p.toCharArray();
} else {
System.out.println("Usage: java InstallCert [:port] [passphrase]");
return;
}
File file = new File("jssecacerts");
if (file.isFile() == false) {
char SEP = File.separatorChar;
File dir = new File(System.getProperty("java.home") + SEP
+ "lib" + SEP + "security");
file = new File(dir, "jssecacerts");
if (file.isFile() == false) {
file = new File(dir, "cacerts");
}
}
System.out.println("Loading KeyStore " + file + "...");
InputStream in = new FileInputStream(file);
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(in, passphrase);
in.close();
SSLContext context = SSLContext.getInstance("TLS");
TrustManagerFactory tmf =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(ks);
X509TrustManager defaultTrustManager = (X509TrustManager) tmf.getTrustManagers()[0];
SavingTrustManager tm = new SavingTrustManager(defaultTrustManager);
context.init(null, new TrustManager[]{tm}, null);
SSLSocketFactory factory = context.getSocketFactory();
System.out.println("Opening connection to " + host + ":" + port + "...");
SSLSocket socket = (SSLSocket) factory.createSocket(host, port);
socket.setSoTimeout(10000);
try {
System.out.println("Starting SSL handshake...");
socket.startHandshake();
socket.close();
System.out.println();
System.out.println("No errors, certificate is already trusted");
} catch (SSLException e) {
System.out.println();
e.printStackTrace(System.out);
}
X509Certificate[] chain = tm.chain;
if (chain == null) {
System.out.println("Could not obtain server certificate chain");
return;
}
BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in));
System.out.println();
System.out.println("Server sent " + chain.length + " certificate(s):");
System.out.println();
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
MessageDigest md5 = MessageDigest.getInstance("MD5");
for (int i = 0; i < chain.length; i++) {
X509Certificate cert = chain[i];
System.out.println
(" " + (i + 1) + " Subject " + cert.getSubjectDN());
System.out.println(" Issuer " + cert.getIssuerDN());
sha1.update(cert.getEncoded());
System.out.println(" sha1 " + toHexString(sha1.digest()));
md5.update(cert.getEncoded());
System.out.println(" md5 " + toHexString(md5.digest()));
System.out.println();
}
System.out.println("Enter certificate to add to trusted keystore or 'q' to quit: [1]");
String line = reader.readLine().trim();
int k;
try {
k = (line.length() == 0) ? 0 : Integer.parseInt(line) - 1;
} catch (NumberFormatException e) {
System.out.println("KeyStore not changed");
return;
}
X509Certificate cert = chain[k];
String alias = host + "-" + (k + 1);
ks.setCertificateEntry(alias, cert);
OutputStream out = new FileOutputStream("jssecacerts");
ks.store(out, passphrase);
out.close();
System.out.println();
System.out.println(cert);
System.out.println();
System.out.println
("Added certificate to keystore 'jssecacerts' using alias '"
+ alias + "'");
}
private static final char[] HEXDIGITS = "0123456789abcdef".toCharArray();
private static String toHexString(byte[] bytes) {
StringBuilder sb = new StringBuilder(bytes.length * 3);
for (int b : bytes) {
b &= 0xff;
sb.append(HEXDIGITS[b >> 4]);
sb.append(HEXDIGITS[b & 15]);
sb.append(' ');
}
return sb.toString();
}
private static class SavingTrustManager implements X509TrustManager {
private final X509TrustManager tm;
private X509Certificate[] chain;
SavingTrustManager(X509TrustManager tm) {
this.tm = tm;
}
public X509Certificate[] getAcceptedIssuers() {
/**
* This change has been done due to the following resolution advised for Java 1.7+
http://infposs.blogspot.kr/2013/06/installcert-and-java-7.html
**/
return new X509Certificate[0];
//throw new UnsupportedOperationException();
}
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
throw new UnsupportedOperationException();
}
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
this.chain = chain;
tm.checkServerTrusted(chain, authType);
}
}
}