Professional Documents
Culture Documents
Release 6.5
Document Relevance and Accuracy
This document is considered relevant to the Release stated on this title page and the document version stated on the Revision History page.
Remember to always view and download the latest document version relevant to the software release you are using.
March, 2016
This document contains information proprietary to Kony, Inc., is bound by the Kony license
agreements, and may not be used except in the context of understanding the use and methods of
Kony, Inc., software without prior, express, written permission. Kony, Empowering Everywhere, Kony
Modeler, and Kony Visualizer are trademarks of Kony, Inc. MobileFabric is a registered trademark of
Kony, Inc. Microsoft, the Microsoft logo, Internet Explorer, Windows, and Windows Vista are
registered trademarks of Microsoft Corporation. Apple, the Apple logo, iTunes, iPhone, iPad, OS X,
Objective-C, Safari, Apple Pay, Apple Watch, and Xcode are trademarks or registered trademarks of
Apple, Inc. Google, the Google logo, Android, and the Android logo are registered trademarks of
Google, Inc. Chrome is a trademark of Google, Inc. BlackBerry, PlayBook, Research in Motion, and
RIM are registered trademarks of BlackBerry. SAP® and SAP® Business Suite® are registered
trademarks of SAP SE in Germany and in several other countries. All other terms, trademarks, or
service marks mentioned in this document have been capitalized and are to be considered the
property of their respective owners.
Revision History
Table of Contents
1. Preface 7
1.1 Purpose 7
1.4 Contact Us 9
2. Introduction 10
3. Prerequisites 13
1. Preface
MobileFabric has multiple features that can be used - Identity, Integration, Orchestration, Sync, and
Messaging. These features can be accessed through a common, centralized console. For successful
authentication with users, and to access the centralized features of MobileFabric, Kony recommends
that you install the following MobileFabric features on premises:
Kony MobileFabric Messaging provides a generic push notifications service that allows you to send
push notifications to multiple platforms (for example, iPhone, Android, BlackBerry, and Windows)
using a single interface. KPN also manages the requirements of individual platforms for example,
formatting, status query, retry on failure and so on.
1.1 Purpose
This document describes how to install and use Kony push notifications.
The intended audience for this document are the developers who want to have an understanding of
Kony push notifications.
The following are the formatting conventions used throughout the document:
Conventions Explanation
l File path
l Commands
l Program code
l File names.
Italic l Emphasis
l New terminology.
Bold l Windows
l Menus
l Buttons
l Icons
l Fields
l Tabs
l Folders.
1.4 Contact Us
2. Introduction
KPN also allows you to send push notifications to customer specific IDs (for example, email
addresses) that a customer provides.You can also query the status of the messages.
l Ease of use: You can use a single interface to send push notifications to numerous devices
running on various platforms. You can also choose to send push notifications to custom IDs
instead of identifiers received from the push notification service providers.
l No platform specific formatting: Kony MobileFabric Messaging allows you to leverage all the
features available on individual platforms (features available on iPhone, Android, BlackBerry,
and Windows) without any platform specific formatting requirements.
l Extensible: Kony MobileFabric Messaging supports all the platforms that support Push
Notifications (Apple, BlackBerry, Android and Windows). Provision is made to support any new
feature with a negligible upgrade impact.
l Robust: Kony MobileFabric Messaging performs multiple levels of validations and reduces the
resource utilization for invalid or improper requests.
l Ease of integration: Kony MobileFabric Messaging accepts requests in XML, and JSON (only
for Messaging) format and thereby offers an easy integration.
l Modular: Kony MobileFabric Messaging is divided into Subscription, and Messaging and
Query. These modules can be used independently and are not interdependent. This allows
modular integration with ease.
l Stage 1: Subscription
l Stage 2: Messaging
1. The mobile application subscribes or registers for push notifications service with a provider. If
the subscription is successful, the push notifications service provider returns a unique identifier
to the mobile application.
The following is the list of platforms and corresponding push notifications service providers, and
the unique identifiers they return:
Kony Platform provides APIs that you can use to enable push notifications for an application on a
device and also an API to deregister from the push notification service.
2. The mobile application sends a subscription request along with the unique identifier to the Kony
Push Notifications Server (KPNS), which in turn sends a Kony Subscription ID to the mobile
application.
1. The message you send to the subscriber is first sent to the KPNS in a Kony specific format.
The KPNS immediately sends a response containing a unique Kony Message Identifier (can be
used for status queries).
2. The KPNS processes the message and sends it to the push notifications service provider
(Apple, BlackBerry, Android, or Windows).
3. The push notification service provider, then sends the push notifications to the device.
3. Prerequisites
The following sections provide you the information to understand the hardware and software required
to install Kony MobileFabric Messaging.
Component Requirement
memory 16 GB
Component Requirement
memory 16 GB
Component Requirement
External Storage 200 GB (RAID 5 + HS) SAN Storage with HA Fiber HBA Connection
The following firewall settings need to be configured for successful Kony MobileFabric Messaging
installation.
Internal Allow your firewall to 5228, TCP, HTTP, Both All Android
Corpor accept outgoing 5229, HTTPS, o device
ate connections to all IP 5230 UDP w s will
WiFi addresses contained in connec
router the IP blocks listed in t to
for Google's ASN of 15169. GCM
Androi Reference link for the IP through
d Addresses this
Mobile http://bgp.he.net/AS151 port.
Device 69
s
through
this
port.
Internal Add the list IPs specified TCP,HTTP, Both All Windo
Corpor in the following WNS HTTPS, o ws
ate URL UDP w device
WiFi http://www.microsoft.co s will
router m/en- connec
for us/download/details.asp t to
Windo x?id=44238 WNS
w through
Device this
s port.
APNS works only with SOCKS proxy type. It is because of the current technical limitation from Apple
to communicate the below push notification ports when a proxy server is in place between Kony
MobileFabric Messaging server and the firewall.
Alternatively, as a workaround, to communicate with the above ports, the system on which the Kony
MobileFabric Messaging server is installed should bypass the proxies and communicate with the
firewall directly.
The domain/server/configuration names mentioned in this document are used for the convenience of
this document. You may use any name suitable for your installation needs.
Make sure that each resource type within a domain must have a name and a JNDI name that is unique
for all configuration objects in the domain. Within a domain, each server, machine, cluster, and JDBC
connection pool, and any other resource type must be named uniquely and must not use the same
name as the domain. Therefore, the name you provide for the Managed Server, Cluster, JMS Server,
JMS Topic, or any other resource should be unique in that domain. The JNDI name provided for JMS
resources and JDBC resources must be unique.
This section of the document provides you with the instructions for installing and configuring the Kony
MobileFabric Messaging. Make sure that you have the required hardware and access to the
supporting software mentioned in the Prerequisites section.
Important: The configurations and examples in this document provide a better understanding of
the concepts. We encourage you not to copy-paste them for your installation and execution as
they may not match your settings. For example, user names, passwords, and IP addresses.
You need to perform the following tasks to install Kony MobileFabric Messaging successfully.
l Database Setup
l Configure_JBoss
Before you proceed with the Installation of Kony Push Notification Server, ensure that you install the
Kony Databases. For further information on Kony Database Setup, following are the databases
supported by Kony MobileFabric Messaging.
5.2.1 MySQL
1. Create a database with a name "kpnsdb" with character set as "utf8" and collate as
"utf8_unicode_ci" using following command
i. MYSQL_KPNSDB_Create.sql
ii. MYSQL_KPNSDB_View.sql
iii. MYSQL_MASTER_DATA.sql
iv. MYSQL_STORED_FUNCS.sql
v. MYSQL_STORED_PROCS.sql
5.2.2 Oracle
1. Create a user / schema with a name "kpnsdb" and provide below grants to "KPNSDB"
schema.
Note: Below grants commands need to be executed with role "sysdba" from SQL*Plus.
i. ORACLE_KPNSDB_Create.sql
ii. ORACLE_KPNSDB_View.sql
iii. ORACLE_MASTER_DATA.sql
iv. ORACLE_STORED_FUNCS.sql
v. ORACLE_STORED_PROC.sql
5.2.3 DB2
3. Create the required (kpnsdb) schemas in KPNS database using the below script:
DB2_CREATE_USERS.SQL
i. DB2_KPNSDB_Create.sql
ii. DB2_KPNSDB_View.sql
iii. DB2_MASTER_DATA.sql
iv. DB2_STORED_FUNCS.sql
v. DB2_STORED_PROCS
6. Use DB2_kpns_job.sh to configure a scheduled job to run at 02:00 AM every day. Refer
DB2_crontab-schedule.txt file for configuring the schedule job.
1. Execute the below command to create a database with name as KPNS and schema with name
as KPNSDB.
SQL_Server_CREATE_DB_SCHEMAS.SQL
i. SQL_Server_KPNSDB_Create.sql
ii. SQL_Server_KPNSDB_View.sql
iii. SQL_Server_MASTER_DATA.sql
iv. SQL_Server_STORED_FUNCS.sql
v. SQL_Server_STORED_PROCS.sql
3. Based on your requirement, select the version under Kony MobileFabric header.
4. Click the Download button to download the files. The kms-x.x.x.x files are downloaded in a zip
format. Kony provides the following files for Kony MobileFabric Messaging:
l WebSphere 8x file
o schema - This folder contains the XML schema definitions for subscription and
messaging.
l Database scripts - There are folders for the following database scripts for creating and
dropping the schema.
MySQL mysql.tar
Oracle oracle.tar
Microsoft SQL sqlserver.tar
DB2 db2.tar
For the Kony MobileFabric Messaging setup, you must copy the files to a location (for example
/home/core/kpns-config) and provide the location of the files to the KPNS in the
kpns.configLocation system property.
5.4.1 ConfigResource.properties
This file contains the configuration properties, the available services (AndroidService, iPhoneService
and so on), and the node identifier to identify the current node among other nodes in the cluster.
####################################################################
########################
# -----------------------------------
####################################################################
########################
##############################################################
# TrustStore Configuration
##############################################################
# truststore.path=
# truststore.passphrase=
# truststore.type=
##############################################################
##############################################################
##############################################################
# httpproxy.host=
# httpproxy.port=
# httpproxy.user=
# httpproxy.pwd=
##############################################################
##############################################################
##############################################################
# socksproxy.host=
# socksproxy.port=
# socksproxy.user=
# socksproxy.pwd=
##############################################################
##Security####################################################
#securekey.encoder=SHA-256
##############################################################
##############################################################
##############################################################
apple.notification.keystore.type=PKCS12
apple.notification.keymanager.algorithm=sunx509
apple.notification.trustmanager.algorithm=sunx509
# apple.notification.keymanager.algorithm=ibmX509
# apple.notification.trustmanager.algorithm=ibmPKIX
apple.notification.server.host=gateway.push.apple.com
apple.notification.server.port=2195
apple.feedback.server.host=feedback.push.apple.com
apple.feedback.server.port=2196
apple.dev.notification.server.host=gateway.sandbox.push.apple.com
apple.dev.notification.server.port=2195
apple.dev.feedback.server.host=feedback.sandbox.push.apple.com
apple.dev.feedback.server.port=2196
##############################################################
##############################################################
##############################################################
android.notification.server.url=https://android.apis.google.com/c2dm
/send
android.notification.server.gcm.url=https://android.googleapis.com/g
cm/send
##############################################################
##############################################################
##############################################################
blackberry.notification.server.url=https://pushapi.eval.blackberry.c
om/mss/PD_pushRequest
blackberry.acknowledgement.listener.port=8888
blackberry.qualityofservice=UNCONFIRMED
##############################################################
##############################################################
##############################################################
windows8.authentication.url=https://login.live.com/accesstoken.srf
##############################################################
##############################################################
##############################################################
varchar.size=4000
threadCount.minimum=1
threadCount.maximum=10
thread.ttl=5000
push.character.encode=UTF-8
push.attempts.maximum=10
fetch.size=1500
batchUpdate.size=500
monitor.schedule=15
job.stalemessages.schedule=18000
feedback.execution.hour=24
http.connection.timeout=60000
http.max.connections=30
http.pool.max.threads=20
http.idle.connection.timeout=30000
audit.enabled=false
##############################################################
# SMPP Configuration
##############################################################
smpp.nexmo.enquiretask.interval = 20
smpp.clickatell.enquiretask.interval = 55
smpp.expirationtask.interval = 60
smpp.request.expirationTime = 60
smpp.request.throttleDelay = 10
5.4.2 kpns-log4j.properties
To control the application logging, you can edit the kpns-log4j.properties file.
log4j.rootLogger=INFO
log4j.logger.com.kony.kms.commons=INFO, file
log4j.logger.com.kony.kms.eventmessage.handler=INFO, file
log4j.logger.com.kony.kms.feedback.processor=INFO, file
log4j.logger.com.kony.kms.message.builder=INFO, file
log4j.logger.com.kony.kms.message.handler=INFO, file
log4j.logger.com.kony.kms.message.processor=INFO, messages
log4j.logger.com.kony.kms.quartz=INFO, file
log4j.logger.com.kony.kms.service=INFO, file
log4j.logger.com.kony.kms.subscription.handler=INFO, file
log4j.logger.com.kony.kms.utility=INFO, file
log4j.logger.com.kony.kms.validators=INFO, file
log4j.logger.com.kony.kms.oauth=INFO, file
log4j.logger.com.kony.kms.ui.controller=INFO, file
log4j.logger.com.kony.kms.web.controller=INFO, file
log4j.logger.com.kony.kms.mbaas=INFO, file
log4j.logger.com.kony.kms.web.filters=INFO, file
log4j.logger.com.kony.kms.web.listeners=INFO, file
log4j.logger.com.kony.kms.web.servlets=INFO, file
log4j.logger.com.kony.kms.sms=INFO, file
log4j.logger.com.kony.kms.mail=INFO, file
log4j.logger.com.kony.kms.passkit=INFO, file
log4j.logger.com.kony.api=INFO, file
log4j.logger.com.kony.kms.exception.controller=INFO, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=10240KB
log4j.appender.file.maxBackupIndex=10
log4j.appender.file.File=${catalina.base}/logs/kms.log
log4j.appender.file.threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.messages=org.apache.log4j.RollingFileAppender
log4j.appender.messages.maxFileSize=10240KB
log4j.appender.messages.maxBackupIndex=10
log4j.appender.messages.File=${catalina.base}/logs/kms-messages.log
log4j.appender.messages.threshold=DEBUG
log4j.appender.messages.layout=org.apache.log4j.PatternLayout
5.4.3 database.properties
Database properties configures database details for KPNS application. Provide respective database
schema names, database driver class, database hibernate dialect and JDBC connection parameters
for quartz. Allowed values are provided in the sample properties file.
####################################################################
########################
# Database Properties
# -------------------------
####################################################################
########################
# MySQL -- org.hibernate.dialect.MySQLDialect
# Oracle -- org.hibernate.dialect.Oracle10gDialect
# DB2 -- org.hibernate.dialect.DB2Dialect
# MS SQLServer -- org.hibernate.dialect.SQLServerDialect
database.dialect=org.hibernate.dialect.MySQLDialect
database.defaultSchema=kpnsdb
# MYSQL -- org.quartz.impl.jdbcjobstore.StdJDBCDelegate
# Oracle -- org.quartz.impl.jdbcjobstore.StdJDBCDelegate
# DB2 -- org.quartz.impl.jdbcjobstore.StdJDBCDelegate
database.quartz.delegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDe
legate
####################################################################
########################
# Cache Configuration
####################################################################
########################
cache.enable=true
Important: Do not use any other database or schema names apart from the ones provided in the
SQL scripts.
Important: Note that the schema names and the database names are case sensitive in MySQL.
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false" dynamicConfig="false">
<diskStore path="java.io.tmpdir/pnsCache"/>
<!--Add all other nodes information aprt from the current node
details-->
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderF
actory"
properties="peerDiscovery=manual,
rmiUrls=//<node>:40001/pnsCache" />
<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerF
actory"
properties="hostName=localhost, port=40001,
socketTimeoutMillis=120000" />
<defaultCache
maxEntriesLocalHeap="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
diskSpoolBufferSizeMB="30"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
statistics="false">
<persistence strategy="distributed"/>
</defaultCache>
<cache name="pnsCache"
maxEntriesLocalHeap="10000"
maxEntriesLocalDisk="10000000"
diskSpoolBufferSizeMB="20"
timeToIdleSeconds="300"
timeToLiveSeconds="86400"
memoryStoreEvictionPolicy="LRU"
transactionalMode="off">
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicateAsynchronously=true, replicatePuts=true,
replicateUpdates=true,
<bootstrapCacheLoaderFactory
class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFacto
ry" />
<persistence strategy="distributed"/>
</cache>
</ehcache>
The process of upgrading Kony MobileFabric Messaging Database includes understanding system
considerations and requirements and troubleshooting various issues before actually performing the
upgrade steps. Before you upgrade Kony MobileFabric Messaging Database, you must become
familiar with the new features .This section provides the latest upgrade information to help you to
understand requirements and complete upgrade tasks.
Refer section Install and Configure Kony MobileFabric Messaging > Database Setup to setup
database and upgrade database versions
upgrade_from_5.0.5_to_5.5.sql
upgrade_from_5.5.4_to_5.6.0.sql
upgrade_from_5.6.0_to_5.6.1.sql
upgrade_from_5.6.1_to_5.6.2.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_5.0.6_to_5.5.4.sql
upgrade_from_5.5.4_to_5.6.0.sql
upgrade_from_5.6.0_to_5.6.1.sql
upgrade_from_5.6.0_to_5.6.1.sql
upgrade_from_5.6.1_to_5.6.2.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_5.5.4_to_5.6.0.sql
upgrade_from_5.6.0_to_5.6.1.sql
upgrade_from_5.6.1_to_5.6.2.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_5.6.0_to_5.6.1.sql
upgrade_from_5.6.1_to_5.6.2.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_5.6.1_to_5.6.2.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
Below grants commands need to be executed with role "sysdba" from SQL*Plus
upgrade_from_5.0.5_to_5.5.sql
upgrade_from_5.0.6_to_5.5.4.sql
upgrade_from_5.5.4_to_5.6.0.sql
upgrade_from_5.6.0_to_5.6.1.sql
upgrade_from_5.6.1_to_5.6.2.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
Below grants commands need to be executed with role "sysdba" from SQL*Plus
upgrade_from_5.0.6_to_5.5.4.sql
upgrade_from_5.5.4_to_5.6.0.sql
upgrade_from_5.6.0_to_5.6.1.sql
upgrade_from_5.6.1_to_5.6.2.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_5.5.4_to_5.6.0.sql
upgrade_from_5.6.0_to_5.6.1.sql
upgrade_from_5.6.1_to_5.6.2.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_5.6.0_to_5.6.1.sql
upgrade_from_5.6.1_to_5.6.2.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_5.0.5_to_5.5_i18n.sql
upgrade_from_5.0.5_to_5.5.sql
upgrade_from_5.5.4_to_5.6.0.sql
upgrade_from_5.6.0_to_5.6.1.sql
upgrade_from_5.6.1_to_5.6.2.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_5.0.6_to_5.5.4.sql
upgrade_from_5.5.4_to_5.6.0.sql
upgrade_from_5.6.0_to_5.6.1.sql
upgrade_from_5.6.1_to_5.6.2.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_5.5.4_to_5.6.0.sql
upgrade_from_5.6.0_to_5.6.1.sql
upgrade_from_5.6.1_to_5.6.2.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_5.6.0_to_5.6.1.sql
upgrade_from_5.6.1_to_5.6.2.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_5.6.1_to_5.6.2.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_5.6.2_to_6.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0_to_6.0.1.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
pgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0.2_to_6.0.3.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
upgrade_from_6.0.3_to_6.5.0.beta.sql
upgrade_from_6.5.0.beta_to_6.5.0.sql
The Kony MobileFabric Messaging Upgrade section shows the location of the KPNS configuration
files that you need to copy from the Kony developer portal. You need to have the required login
information to download files.You must download the kpns.war file, sharedlib.tar, and
the kpns-resource –tar files.
Refer to Install and Configure KPNS > Download KPNS Files section to download Kony
MobileFabric Messaging artifacts.
Refer to Install and Configure KPNS > Setup KPNS section to setup Kony MobileFabric Messaging
application.
This section is applicable if you are using JBoss as the J2EE Web container for the setup. Before you
begin, you must configure the JBoss Server with the configuration that provides Datasource services
or continue with the default configuration provided out of the box.
After you configure the JBoss server, you must perform these operations:
l Configure Datasources
You must configure the JBoss Server to provide the memory arguments and the location of the Kony
MobileFabric Messaging configuration files.
5. Remove the default quart and mail lib from the following path (quartz.jar,
mail.jar).
1. Navigate to the location where you have extracted the kpns-resources.tar file.
3. Modify the attributes of <name>-ds.xmlfile with the values which are appropriate as per
your database configuration.
For Oracle, DB2, and MySQL, the <name>-ds.xmlfile has the following attributes:
ndi-name Yes Specifies the JNDI name (schema name) under, which
the Datasource should be bound
type-mapping Yes This element defines a default type mapping for a data
source
For Microsoft SQL Server, the <<name>>-ds.xml file has the following attributes:
ndi-name Yes Specifies the JNDI name (schema name) under which
the Datasource should be bound
type-mapping Yes This element defines a default type mapping for a data
source.
Example Snippets:
Important: The configurations and examples in this document are provided for a better
understanding of the concepts. We encourage you not to copy-paste them for your
installation execution as they may not match your settings. For example, user names,
passwords, IP addresses, and port numbers.
<datasources>
<local-tx-datasource>
<jndi-name>kpnsdb</jndi-name>
<use-java-context>false</use-java-context>
<!-- Specify the DatabaseName parameter as KPNSDB for push
notifications
-->
<connection-url>jdbc:sqlserver://<ipaddress>;
DatabaseName=KPNSDB</connection-url>
<idle-timeout-minutes>20</idle-timeout-minutes>
<statement>
<track-statements>false</track-statements>
</statement>
<metadata>
<type-mapping>mySQL</type-mapping>
<!-- the type mapping values examples are as follows:
DB2, Oracle10g, MS SQLSERVER2000-->
</metadata>
</local-tx-datasource>
</datasources>
Note: The Database driver must be placed in the JBoss Server lib directory.
<jboss_intstall_dir>\common\lib
1. To deploy KPNS on the JBoss Server, copy kpns.war file to the following location:
<JBoss Install Directory>/server/<configuration>/deploy/
2. After you deploy KPNS, complete the KPNS setup and start the JBoss Server.
This section is applicable if you use JBoss as the J2EE Web container for the setup. Before you begin,
you must configure the JBoss server with the configuration that provides Datasource services or
continue with the default configuration provided out of the box.
After you configure the JBoss server, you must perform these operations:
l Configure Datasources
You must configure the JBoss Server to provide the memory arguments and the location of the Kony
MobileFabric Messaging configuration files.
l MySQL
l Microsoft SQL
l Oracle
l DB2
8.2.1 MySQL
$JBOSS_HOME/modules/com/mysql/main
<properties>
</properties>
<resources>
<resource-root path="mysql-connector-java-5.1.26-bin.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
<driver>mysql</driver>
<security>
<user-name>kpns db username</user-name>
<password>kpns db password</password>
</security>
<new-connection-sql>SELECT 1</new-connection-sql>
<validation>
<validate-on-match>true</validate-on-match>
<check-valid-connection-sql>SELECT 1</check-valid-
connection-sql>
</validation>
</datasource>
<subsystem xmlns="urn:jboss:domain:jpa:1.1">
</subsystem>
8.2.2 Microsoft SQL
ii. $JBOSS_HOME/modules/com/microsoft/main
<properties>
</properties>
<resources>
<resource-root path="sqljdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
<driver>microsoft</driver>
<security>
<user-name>kpns db username</user-name>
<password>kpns db password</password>
</security>
<new-connection-sql>SELECT 1</new-connection-sql>
<validation>
<validate-on-match>true</validate-on-match>
<check-valid-connection-sql>SELECT 1</check-valid-
connection-sql>
</validation>
</datasource>
<subsystem xmlns="urn:jboss:domain:jpa:1.1">
</subsystem>
8.2.3 Oracle
ii. $JBOSS_HOME/modules/com/oracle/main
<properties>
</properties>
<resources>
<resource-root path="ojdbc6_g.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
<driver>oracle</driver>
<security>
<user-name>kpns db username</user-name>
<password>kpns db password</password>
</security>
<validation>
<validate-on-match>true</validate-on-match>
</validation>
</datasource>
<subsystem xmlns="urn:jboss:domain:jpa:1.1">
</subsystem>
8.2.4 DB2
ii. $JBOSS_HOME/modules/com/db2/main
<properties>
</properties>
<resources>
<resource-root path="db2jcc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
<driver>db2</driver>
<security>
<user-name>kpns db username</user-name>
<password>kpns db password</password>
</security>
<validation>
<validate-on-match>true</validate-on-match>
<check-valid-connection-sql>select 1 from
sysibm.sysdummy1</check-valid-connection-sql>
</validation>
</datasource>
<subsystem xmlns="urn:jboss:domain:jpa:1.1">
</subsystem>
1. To deploy Kony MobileFabric Messaging on the JBoss Server, copy kpns.war file to the
following location:
2. After you deploy Kony MobileFabric Messaging, complete the Kony MobileFabric Messaging
setup and start the JBoss server.
This section is applicable if you use WebSphere as the J2EE Web container for the setup.
After making the necessary modifications to Kony MobileFabric Messaging files, configure
Websphere. Perform the following tasks using Websphere Administration Console. You need to log in
to the Administration Console to perform these operations
l Configure Database
You need to log in to the Websphere Administration Console to perform these operations.
4. Navigate to Server Infrastructure section and click Java and Process Management >
Process Definition.
7. In the Generic JVM arguments field, enter the system properties as mentioned below:
-Dhibernate.dialect Enable
hibernate
dialet Oracle= org.hibernate.dialect.Oracle10gDialect
configuratio
n for Oracle
database.
Ignore this section if the database driver is already configured. The assumption is that you use MySQL
database.
1. In the Administration Console, select Resources > JDBC > JDBC Provider from the left
menu.
2. On the right pane, click New, to navigate to configure new JDBC provider.
com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
4. Click Next.
5. Provide the classpath for the driver library. For example, enter the value${WAS_INSTALL_
ROOT}/lib if the MySQL connector jar is placed here.
Ignore this section if the database driver is already configured. The assumption is that you use an
Oracle database.
1. In the Administration Console, select Resources> JDBC>JDBC Provider from the left menu.
2. On the right pane, click New, to navigate to configure new JDBC provider.
4. Click Next.
5. Provide the absolute path to the JDBC driver library. For example, enter the value${ORACLE_
JDBC_DRIVER_PATH} if the ojdbc6.jar is placed here.
Ignore this section if the database driver is already configured. The assumption is that you use a DB2
database.
1. In the Administration Console, select Resources > JDBC > JDBC Providers from the left
menu.
a. Database Type: DB2
d. The Name field is populated as DB2 Using IBM JCC Driver(Optional) by default.
5. Click Next.
Note: Ensure that the following DB2 driver files db2jcc4.jar, db2jcc_license_
cisuz.jar and db2jcc_license_cu.jar are downloaded and copied to the file
system - /opt/db2jars.
7. Click Next.
Ignore this section if the database driver is already configured. The assumption is that you use a
Microsoft SQL database.
1. In the Administration Console, select Resources > JDBC > JDBC Provider from the left
menu.
2. On the right pane, click New, to navigate to configure new JDBC provider.
4. Click Next.
5. Provide the absolute path to the JDBC driver library. For example, enter the
value${MICROSOFT_JDBC_DRIVER_PATH} and ${MICROSOFT_JDBC_DRIVER_
NATIVEPATH}.
1. In the Administration Console, select Security > Global Security from the left menu.
2. In the right side pane, under Authentication, click Java Authentication and Authorization
Service > J2C authentication data.
a. Alias: Enter Alias. This is an alias name for the authentication entry, for example
MySQLAdmin.
1. In the Administration Console, select Resources > JDBC > Data sources from the left menu.
a. Data source name: Enter the datasource name, for example kpnsdb.
4. Click Next.
5. In Step-2 of the wizard, choose Select an existing JDBC provider and select the driver
created using a Setup MySQL database driver, from the drop-down.
6. Click Next.
8. In Step-4, Setup security aliases, select the J2C Authentication entry created above.
1. In the Administration Console, select Resources > JDBC > Data sources from the left menu.
databaseName KPNSDB
1. In the Administration Console, select Security > Global Security from the left menu.
2. In the right side pane, under Authentication, click Java Authentication and Authorization
Service > J2C authentication data.
a. Alias: Some alias name for the authentication entry, for example client1
credentials.
1. In the Administration Console, select Resources > JDBC > Data sources from the left menu.
In the page that appears, click New. Enter the following information:
l Click Next.
l Choose Select an existing JDBC provider and select an Oracle driver from the drop-
down.
l Click Next.
o Data store helper class name: Oracle 10g data store helper.
o In the page that appears, for the fields Component-managed authentication alias
and Container-managed authentication alias, select kpnsdbAuth. Here
kpnsdbAuth will be pre-appended with node name.
l Click OK and save the configuration. You are directed to the Data source page.
l Select kpnsdb and click Test Connection to ensure data source setup is correct.
1. In the Administration Console, select Security > Global Security from the left menu.
2. In the right side pane, under Authentication, click Java Authentication and Authorization
Service > J2C authentication data.
a. Alias: Some alias name for the authentication entry, for example client1
credentials.
1. In the Administration Console, select Resources > JDBC > Data sources from the left menu.
In the page that appears, click New. Enter the following information:
l Click Next.
l Choose Select an existing JDBC provider and select a Microsoft SQL Server JDBC
Driver for Microsoft SQL from the drop-down menu.
l Click Next.
l Click Next.
l In the Security Aliases page, select the Global J2C authentication alias. A new window
for J2C authentication window appears.
l In the left pane, navigate to Connection pool properties, select Connection Pool
properties and change the values:
o 30 for maximum connections.
l Select the Microsoft SQL data source and go to >Custom Properties >New ,then enter
name as sendStringParametersAsUnicode and value as true.
1. In the Administration Console, select Security > Global Security from the left menu.
2. In the right side pane, under Authentication, click Java Authentication and Authorization
Service > J2C authentication data.
i. Alias: Some alias name for the authentication entry, for example client1 credentials.
1. In the Administration Console, select Resources > JDBC > Data sources from the left menu.
2. In the page that appears, click New. Enter the following information:
Data Description
3. Click Next.
4. In the page that appears,select an existing JDBC provider and select a DB2 Using IBM JCC
Driver from the drop-down menu.
5. Click Next..
Data Description
Driver type 4
7. Click Next.
8. In the Security Aliases page, select the Global J2C authentication alias. A new window for J2C
authentication window appears.
10. Click the name of the created datasource in the main pane.
11. Select the DB2 data source and go to Custom Properties >New.
l currentSchema
l progressiveStreaming
These steps are mandatory to configure shared libraries for WebSphere 8 and 8.5 versions.
2. Create a directory path in the server with the name sharedlib/lib. For example,
/home/core/install/kpns_sharedlib
4. Login to the IBM console and stop and un-install kpns.war if already exists.
a. Click Environment in the left pane to view sections. Click Shared libraries. Shared
Libraries section appears in the right pane.
b. Based on your environment, choose the specific scope or Node under Shared libraries
section.
a. Name: kpns-shared-lib
c. Classpath: /home/core/install/kpns_sharedlib
7. Select the Use an isolated class loader for this shared library check box.
7. Click the Shared library reference link under References, and select the KPNS Application
Configuration page.
10. Select the added shared library from the Available list box and use the single arrow icon to move
it to Selected list box.
11. Click OK to save the changes.The Reference Shared Libraries list view appears.
i. Check the SystemOut.log file for the successful kpns validation message. If the log
displays FATAL ERRORS, verify the setup.
ii. Check the kpns.log file. It should show a successful license validation message.
9.4.2 Websphere Unrestricted JCE Policy JAR Files for iPhone Push
Notifications and Nexmo SMS gateway configuration
While sending a push message for iPhone, if it results with a push failure, you see the following
exception.
Or while sending SMS with Nexmo provider, if it results with a SMS failure, you see the
following exception.
IO Exception occurred
at com.ibm.jsse2.SSLSessionImpl.getPeerCertificates
(SSLSessionImpl.java:79)
at org.apache.http.conn.ssl.AbstractVerifier.verify
(AbstractVerifier.java:126)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket
(SSLSocketFactory.java:572)
at
org.apache.http.impl.conn.DefaultClientConnectionOperator.openC
onnection
To fix this exception, you need to use the unrestricted policy files: local_policy.jar,
US_export_policy.jar by replacing the existing jar files in %WAS_
HOME%\java\jre\lib\security location, and then restart your Websphere.
Note: The unrestricted policy files provided here will work with all IBM Java SDKs version
1.4.2 and higher.
You can download the unrestricted.zip file with your IBM login credentials:
https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=jcesdk
KPNS connects to GCM server using HTTPS connectivity. During this connection, KPNS
downloads required certificates into "cacerts" file.
However, if KPNS fails to download the required certificates from GCM cloud, you will not able
to send Push notifications. You may encounter below exception in kpns.log file.
at com.kony.pns.commons.HttpConnectionManager.executeRequest
(HttpConnectionManager.java:109)
at
com.kony.pns.service.message.processor.AndroidGCMPushService.pu
sh(AndroidGCMPushService.java:99)
at
com.kony.pns.service.message.processor.MessageProcessorChain.pr
ocess(MessageProcessorChain.java:61)
at com.kony.pns.beans.monitor.MessageExecutor$MessageTask.run
(MessageExecutor.java:463)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:908)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:931)
at java.lang.Thread.run(Thread.java:773)
To resolve this error, follow the command to import GCM certificate manually to cacerts
file:
Now import the cert in to cacerts as shown in the below example commands.
[root@plqa1was-1 tmp]#
/data/bharath/IBM/WebSphere/AppServer/java/bin/keytool -import
-alias
"gcmcert" -keystore
/data/bharath/IBM/WebSphere/AppServer/java/jre/lib/security/cac
erts -file
/tmp/gcmcert.crt
Enter keystore password:
Owner: CN=*.googleapis.com, O=Google Inc, L=Mountain View,
ST=California, C=US
Issuer: CN=Google Internet Authority G2, O=Google Inc, C=US
Serial number: 66a0f2f133449076
Valid from: 10/23/13 8:49 PM until: 10/23/14 5:30 AM
Certificate fingerprints:
MD5: 88:6E:93:FB:BE:43:B7:75:6E:ED:7B:ED:DF:A3:44:E9
SHA1:
2E:36:85:62:B7:A6:0B:97:D2:65:6A:70:B6:0E:FB:20:B0:9A:87:85
Trust this certificate? [no]: yes
Certificate was added to keystore
Configure WebSphere ND, before you proceed with the necessary modifications to Kony Server files.
Perform the following tasks using WebSphere Administration Console. You need to log in to the
Administration Console to perform these operations.
l Deploy kpns.war
You can enable multiple appservers on a single machine to increase the capacity of your
installation.
Vertical clustering is only supported within the WebSphere Application Server environment. The
following parameters must be met:
l The names of all the other WebSphere Application Server app server and virtual host
components must be unique. The WebSphere Application Server appserver and virtual
host components are installed in the same cell on the same node.
l You can create app server nodes by running the Profile Management tool (pmt.sh)
2. To add to the DMGR cluster, ensure that you execute ./addNode.sh script as shown below:
Syntax:
For example:
Note: Before you run the above command to federate, ensure that the node is up.
Note: Avoid starting node agent if the new profile node and DMGRare on the same physical
box and there is already an attached profile running along with node agent.
If during the fresh installation only DMGR is installed, then Restart the node is mandatory
for each profile node.
# ./startNode.sh
4. Restart DMGR to view the newly added servers in the DMGR profile.
Horizontal clusters are meant for multiple app server nodes, which are deployed on remote machines
to increase the capacity of your system installation, and also to achieve high availability.
Once you create profiles on remote machines by using profile management tool, go to the each
AppServer bin directory and run the below command as shown example:
Ensure that you are using hostnames instead of IP address of the DMGR node. If the hostnames are
not available, you can edit /etc/hosts file until the node federation is completed.
You need to repeat the above steps for each app server node to federate to DMGR.
b. Select the Servers from the left menu and then select the Clusters.
c. Select the WebSphere application server clusters. The WebSphere application server
clusters screen appears in the right pane.
a. Click the New button from the right pane. The Create a new cluster screen appears.
d. Enter the details about the cluster members in the Member name field as cl_
appsevrer1.
e. Define the node on which the cluster member resides from the Select Node drop-down
list.
f. Define whether the server to be generated is based on a server template by selecting the
Generate unique HTTP ports check box.
g. Click the Next button. The Create additional cluster members screen appears.
a. Enter the cluster member name in the Member name field as cl_appsevrer2, cl_
appsevrer3 and so on
b. Click the Add Member button. The newly created member is added to the grid.
c. Define the node on which the cluster member resides from the Select Node drop-down
list.
e. Click the Finish button. The system displays the WebSphere application server
clusters screen including newly created clusters.
Note: Once the cluster is created successfully, the cluster is in unavailable (stopped) state
by default. You can change the status to Started if required.
c. If the node agent is not started, execute the below script to start the same.
WAS_HOME/profiles/YOUR_PROFILE_NAME/bin/startNode.sh
a. From the left panel, select the Servers > Clusters > WebSphere application server
clusters. The WebSphere application server clusters screen appears in the right pane.
c. Click the Start button. The system changes the status of the cluster as Started.
2. In the New Application page that appears, click the NewEnterprise Applications.
3. Select Local file system and browse for kpns.war file. Click Next.
We assume that the kpns.war file is located on the local file system.
4. In the How do you want to install the application? pane that appears, select the Fast Path and
click the Next.
5. Once you reach the Map modules to the servers page, under the Clusters and servers, select
WebSphere:Cell=localhostCell01,cluster=KonyCluster,then select the check box for Push
Notification Server, and then click the Apply button.
9. Click on kpns link in Applications. The KPNS Application Configuration page appears.
10. Click the Shared library reference link under References, and select the KPNS Application
Configuration page.
13. Select the added shared library from the Available list box and use the single arrow icon to
move.it to the selected list box.
14. Click OK to save the changes.The Reference Shared Libraries list view appears.
18. If you notice any synchronization errors, log in to the machines with SSH, navigate to each app
server node bin directory and run following commands to make force deployment and
configuration synchronization between node and cell.
Note: Before running syncNode.sh, ensure that the node agent must be stopped.
# ./stopNode.sh
# ./syncNode.sh dmgrmachine1 8879 -username wasadm -password
kony123
1. From the left panel, select the Servers > Clusters > WebSphere application server clusters.
The WebSphere application server clusters screen appears in the right pane.
2. If the cluster already started, you can stop and start the cluster to apply the new configuration.
Click the Start button. The system changes the status of the cluster as Started.
This section is applicable if you are using WebLogic as the J2EE Web container for the setup. After
making necessary modifications to Kony MobileFabric Messaging files, you must configure WebLogic
server. Perform the following tasks using WebLogic Administration Console. You need to log in to the
Administration Console to perform these operations.
l Create Cluster
l Configure Datasource
1. Start the Configuration wizard. You can start the configuration wizard by executing
config.sh under WL_HOME/common/bin.
3. In the Select Domain Source window, choose the default option and click Next.
6. Click Next.
9. By default, Administration server is created on port number 7001. If you want to modify the port
number, perform these steps. If you do not want to make any changes, skip to step 9.
ii. Enter a port (for example,7110) that is not in use in the Listen port field.
A WebLogic Server cluster consists of multiple WebLogic server instances running simultaneously
and working together to provide increased scalability and reliability. A Cluster configuration is setup on
one of the physical servers on which you want to configure the cluster. The Administration server will
be running on this machine only as shown below:
Note: Each server instance in a cluster must run the same version of WebLogic Server.
1. In the left pane of the Administration Console, expand Environment and select Clusters.
3. On the Create a New Cluster > Cluster Properties page, enter following details:
On a physical server, to setup the Administration server and the Cluster, start the Administration
server and open the Administration Console. On this server create the planned number of managed
servers. For instance, for a Cluster architecture cited in the above figure, you need nine managed
servers. So, you need to create nine managed servers as described in the steps given below:
1. In the left pane of the Administration Console, select Environment > Servers.
ii. Server Listen Address: Suppose the physical machine has multiple IP addresses, and
you want to restrict the machine to listen particular IP address, then provide the particular
IP address or DNS name here. If you do not enter any value, then by default WebLogic
configures the server to listen on all the addresses. Considering the example in the figure
above, you need to create three managed servers listening to the address of machine
one, three listening on the address of machine two and three listening on the address of
Machine three. All the nine managed servers are created on the physical machine on
which the cluster is configured.
iii. Server Listen Port: Enter the port number that is not in use, for instance 8001, from
which you want to access the server instance.
v. Click Next.
4. Repeat steps 1 to 3 to create multiple managed servers, with a unique name and port, on this
domain.
Node Manager is a stand-alone Java program provided with each WebLogic server installation. You
use it to start, stop, and suspend server instances, and to automatically restart servers that fails. Node
Manager must run on each computer that hosts WebLogic Server instances that you want to control
with the Node Manager.
You can manually start the node manager by executing startNodeManager script. For
WebLogic 11g you can find the script file under <WL_INSTALL_
DIR>/Middleware/wlserver/server/bin.
To start a managed server from the cluster for each computer hosting a set of managed servers, a
machine needs to be configured on the server where you want to create the cluster.
1. In the left pane of the Administration Console, expand Environment and select Machines.
2. Click New.
3. On Create a New Machine > Machine Properties page, enter the following details:
4. Repeat steps 1 to 3 to create multiple machines, with a unique name, on this domain.
Configure the machine to listen to the local or remote Node Manager and add the servers the machine
controls.
1. In the left pane of the Administration Console, expand Environment and select Clusters.
i. Type: Select the Node Manager type from the drop-down list. By default the type of the
Node Manager is SSL. It is recommended to go with the default type.
ii. Listen Address: Enter the DNS name or the IP address on which the Node
Manager listens this physical server. You can enter localhost, if the Node Manager runs
on the same box.
iii. Listen Port: This is the port where the Node Manager listens for incoming requests. By
default,Node Manager listens on port 5556.
i. Click Add.
Provide JVM parameters using the Administration Console. You need to log in to the WebLogic
Administration Console to perform these operations.
3. Click the server on which you need to set the JVM parameters.
-Xmx:2048m
(JRockit)
-Xms:2048m
(JRockit)
-Xgcprio:throughput
(JRockit)
8. Perform steps number two to seven for all the managed servers on which Kony Application
Server needs to be deployed.
1. In Administration Console, select Services > Data Sources from the left menu.
o MySQL: If the selected database type is MySQL, the default selected driver is the
recommended database driver.
o DB2: If the selected database type is DB2, select the database driver as:Oracle's
DB2 Driver XA
o Microsoft SQL Server: If the selected database type is Microsoft SQL Server,
select the database driver as, Oracle's MS SQL Server Driver Non-XA.
l Click Next.
l Enter connection properties like Database Name, Host Name, Port, Database User
Name and Password.
Note: For DB2, database schema name should be in capital letters like KPNSDB.
7. Select the cluster created earlier, as the target for the data source
You must first complete the above configurations and complete the KPNS setup before starting the
cluster.
The domain configuration currently exists in the machine hosting the Administration server. You have
to copy the domain configuration on each machine. These copies of the domain configuration will be
used by the managed servers. Run the following commands to create a template of the domain
configuration.
cd <WL_HOME>/common/bin
A template is created based on which you create domain on the other physical servers.
Copy the template created in the above step to a temporary location on each physical machine. Make
sure you installed same version of WebLogic Server on each physical machine. Execute the below
command to create the domain on each physical server.
cd <WL_HOME>/common/bin
unpack.sh -domain=<Weblogic_Install_Dir>/Middleware/user_
projects/domain/<domain_name>-template=<location_of_the_copied_
template>
Enroll the Node Manager to make the managed servers on the domain to be accessible. On each
machine, which is a part of the cluster, perform the following steps:
1. Navigate to WL_HOME/common/bin.
2. Execute wlst.sh. This action opens a console to execute the commands required for
enrolling the Node Manager.
3. Enter connect('<username>','<password>','t3://<Admin
Host>:<Admin Port>'), where the username and password are the credentials
required to connect to the Administration Server.
wls:/offline>connect
('weblogic','weblogic1','t3://KonyServer:8080')
Restart the Node Managers on all the machines after performing this step.
1. In the left pane of the Administration Console, expand Environment and select Clusters.
3. On the Control page, select all the servers and click Start.
This starts the Managed Servers on all physical servers. The remote start is done through the Node
Manager.
This completes the cluster setup. Configure a hardware Load Balancer to complete the load
balancing.
Deploy Kony MobileFabric Messaging after you start the Cluster. Download or copy kpns.war
and place it on your local machine.
2. Click Install.
3. In the Install Application Assistant, select the kpns.war by using the folder navigation
provided.
4. Let the Target style be the default (Application type deployment) and click Next.
5. In the Select deployment targets pane, select the cluster created and click Next.
6. Go to Source accessibility section of the Optional Settings pane and choose Copy this
application onto every target for me.
Note: If Kony MobileFabric Messaging security is enabled, the Weblgic basic authentication
security has to be disabled.
To disable the Weblgic basic authentication security, modify the security-configuration tag in
the config.xml file located in the config folder of Weblogic server
xsi:schemaLocation="http://xmlns.oracle.com/weblogic/security/x
acml
http://xmlns.oracle.com/weblogic/security/xacml/1.0/xacml.xsd
http://xmlns.oracle.com/weblogic/security/providers/passwordval
idator
http://xmlns.oracle.com/weblogic/security/providers/passwordval
idator/1.0/passwordvalidator.xsdhttp://xmlns.oracle.com/weblogi
c/domain http://xmlns.oracle.com/weblogic/1.0/domain.xsd
http://xmlns.oracle.com/weblogic/security
http://xmlns.oracle.com/weblogic/1.0/security.xsd
http://xmlns.oracle.com/weblogic/security/wls
http://xmlns.oracle.com/weblogic/security/wls/1.0/wls.xsd">
<name>plt1</name>
<domain-version>10.3.5.0</domain-version>
<security-configuration>
<name>plt1</name>
<realm>
<sec:authentication-provider xsi:type="wls:default-
authenticatorType
"></sec:authentication-provider>
<sec:authentication-provider xsi:type="wls:default-identity-
asserter Type">
<sec:active-type>AuthenticatedUser</sec:active-type>
</sec:authentication-provider>
<sec:role-mapper
xmlns:xac="http://xmlns.oracle.com/weblogic/security/xacml"
xsi:type="xac:xacml-role-mapperType"></sec:role-mapper>
<sec:authorizer
xmlns:xac="http://xmlns.oracle.com/weblogic/security/xacml"
xsi:type="xac:xacml-authorizerType"></sec:authorizer>
<sec:adjudicator xsi:type="wls:default-
adjudicatorType"></sec:adjudicator>
<sec:credential-mapper xsi:type="wls:default-credential-
mapperType">
</sec:credential-mapper>
<sec:cert-path-provider xsi:type="wls:web-logic-cert-path-
providerType"></sec:cert-path-provider>
<sec:cert-path-builder>WebLogicCertPathProvider</sec:cert-path-
builder>
<sec:name>myrealm</sec:name>
<sec:password-validator
xmlns:pas="http://xmlns.oracle.com/weblogic/security/providers/
passwordvalidator" xsi:type="pas:system-password-
validatorType">
<sec:name>SystemPasswordValidator</sec:name>
<pas:min-password-length>8</pas:min-password-length>
<pas:min-numeric-or-special-characters>1</pas:min-numeric-or-
speci
al-characters>
</sec:password-validator>
</realm>
<default-realm>myrealm</default-realm>
<credential-encrypted>{AES}
ojAgdYBG3tN2+X/c52RaQbhB6hCRrlFlKKqz/4joVzQUtk+WEdm0MbvIGgPusmc
fhcKHQLaYwnhtnUWvkMZ7NTxoXv1hQjlNKBRbnhMat8ti0KFaN46QT
bd4AmW3qczp</credential-encrypted>
<node-manager-username>weblogic</node-manager-username>
<node-manager-password-encrypted>{AES}
dbeIf/S+jYhL1Uyj1rS33ZJf3G3oi9n4Bi9RdJwWv8w=</node-manager-
password-encrypted>
<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>
</security-configuration>
<server>
<name>AdminServer</name>
<listen-address></listen-address>
<server-start>
<arguments>-Xms1024m -Xmx1024m -
Dkpns.configLocation=/data/kpns-config -
Dhibernate.dialect=org.hibernate.dialect.Oracle10gDialect -
Xdebug -Xnoagent -Xrunjdwp:transport=dt_
socket,address=4000</arguments>
<username>weblogic</username>
<password-encrypted>{AES}
EZZ/aAqiz+8goecXlWC+jaWOcVOijjUY3KXjM3EHHHw
=</password-encrypted>
</server-start>
</server>
<embedded-ldap>
<name>plt1</name>
<credential-encrypted>{AES}
C6eItmd8OAAirP/G/TIQur8boApKvb1sICBHGFuvafr
RWCRg/pUfxjTceh2s7mGO</credential-encrypted>
</embedded-ldap>
<configuration-version>10.3.5.0</configuration-version>
<app-deployment>
<name>kpns</name>
<target>AdminServer</target>
<module-type>war</module-type>
<source-path>servers/AdminServer/upload/kpns.war</source-path>
<security-dd-model>DDOnly</security-dd-model>
</app-deployment>
<admin-server-name>AdminServer</admin-server-name>
<jdbc-system-resource>
<name>kpnsdb</name>
<target>AdminServer</target>
<descriptor-file-name>jdbc/kpnsdb-jdbc.xml</descriptor-file-
name>
</jdbc-system-resource>
</domain>
11.1 Database
11.1.1 MySQL
11.1.2 Oracle
11.1.3 DB2
11.1.4 SQLServer
1. To deploy Kony MobileFabric Messaging on Tomcat Server, copy kpns.war file to the
following location:
2. After you deploy Kony MobileFabric Messaging, complete the Kony MobileFabric Messaging
setup and start the Tomcat Server.