Quantcast
Channel: SCN : Document List - SMP Developer Center
Viewing all 539 articles
Browse latest View live

How to setup java visual virtual machine

$
0
0

How to setup java visual virtual machine
utility and connect to SUP 2.x.x

 

 

Purpose

This technical document explains how to monitor and capture Java Virtual Machine
using the java Visual virtual Machine utility that is shipped with the SUP/SMP server
versions of Java JRE’s. This will give you the ability to capture schedule refresh,
Garbage Collection as well as the ability to perform SPID dumps thread dump or
complete JVM heap dumps.

Required Software

1.            SUP or SMP 2.x.x Server

2.            JRE/JDK that is shipped with SUP or SMP server

Assumption

This document assumes you have a working SUP environment.
You have Administrator rights to the Operating System and SUP.

 

Step 1 – Configuration steps need to enable monitor.

User needs to connect to the SUP’s JVM pool to monitor.

 

Solution

In order to connect to the JVM pool we need to create a service connection
in SCC JVM pooling.

 

  1. Start Sybase Control Center (SCC).
  2. Log in as supAdmin.
  3. Go to the folder Servers then your server name.

4.    Go to Server Configuration.

  1. On your right hand side go to the General Tab.
  2. On your right hand side go to the General Tab.
  3. Next go to Users options.
         You will see a line similar to this one.
         -XX:MaxPermSize=256M -XX:HeapDumpPath=D:\Sybase\UnwiredPlatform\
          Servers\UnwiredServer/logs -XX:+HeapDumpOnOutOfMemoryError
        
        
  4. The line above is used to configure the JVM that the SUP uses.
        
        
  5. We need to add the follow three lines make sure there is a  single space between
    each command.
        
    -Dcom.sun.management.jmxremote.authenticate=false

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.port=8086

  1. Here is the complete line note it is continues line for reading it is wrapped around in
    this write up to t fit the screen.
  2. -XX:MaxPermSize=256M -XX:HeapDumpPath=D:\Sybase\UnwiredPlatform\
    Servers\UnwiredServer/logs
    -XX:+HeapDumpOnOutOfMemoryError
    -Dcom.sun.management.jmxremote.port=8096
    -Dcom.sun.management.jmxremote.authenticate=false
    -Dcom.sun.management.jmxremote.ssl=false

 

             

1.jpg
   
Figure 1

 

4.    Add the three lines to the User Option.

5.    Click the Save Button

6.    You will need to restart the SUP server so the changes will take effect.

7.    In SCC go to Servers folder icon.

8.    On the right hand side select the server name.

9.    Click the restart button.

 

2.jpg

      Figure 2

 

 

This concludes the steps needed to add a service connection in SCC that will allow us
to connect to the SUP’s JVM processes using the java visual virtual Machine utility.


Starting and connecting to the SUP’s JVM using the java visual
virtual Machine utility.
    

 

In order to connect to the JVM pool we need to perform the following steps.

 

After restarting the SUP server we need to check and make sure the port we configured is
truly listening.
Perform netstat –a at a command prompt
and look for the local host and port 8096 that we defined in the JVM options
-Dcom.sun.management.jmxremote.port=8096

TCP    0.0.0.0:8096           BEDN00530745A:0        LISTENING
3.jpg

Figure 3

 

Now that we have confirmed that we have established a listen port to the JVM
we can now proceed to connect and start monitor.

 

The following steps will start the jvisualvm

1-    Go to windows and open the following path
C:\Sybase\UnwiredPlatform\JDK1.6.0_31-x64\bin.
Your path maybe different it is dependent on where you installed SUP/SMP.

Double click on jvisualvm.exe to start the application.

 

 

1-    Once started you will see the following screen.

 

4.jpg

 

Figure 4

 

 

 

2-    Go to the top menu and select file then Add JMX Connections.
5.jpg

             Figure 5

 

 

6.jpg

Figure 6

3-    On the next screen you will need to add your machine name and the
port number 8096. As an alternative you could use localhost and port
number 8096

 

 

7.jpg

Figure 7

4-    Click OK

5-    If you get a connection error then try and change the port number in SCC
and restart. I did have issue with port 8086 so I just changes to port 8096.
Also I found that using the Server Name or TCP/IP address also did not
work unless I was on a remote machine so use localhost.

 

 

Figure 8 is showing that you are now really connected to the SUP’s JVM.
For further confirmation look at the PID 12512 using a utility like process explorer
and task manager see Figure 8 we can track down the SPID to see who it belongs to.
Note your SPID may be different.  


8.jpg
Figure
8

 

By looking at the SPID we can confirm we are talking to the the SUP’s Servers JVM.

This concludes the steps needed to start and connect to the SUP’s JVM
on port 8096

 

User needs to monitor active threads and garbage collecting activities.

 

Solution

 

In order to do that, you will need to do the following steps.

 

From the menu Tabs you will have the following options Monitor, Threads,
Sampler.

 

9.jpg

Figure 9

 

 

 

 

 

 

Monitor Tab will provide you the following items to monitor
CPU, Memory, Threads and Classes. Also Note from the Tab
we can perform Garbage collecting and a Heap Dump.

 

10.jpg

Figure 10

 

11.jpg

Figure 11

 

The Threads Tab Options :                                       


Threads very detailed and you can monitor them.Threads tab have option to monitor and
report on sleeping threads active thread. You also have the option to DUMP a thread
this is very use full with having issues or you want to see what the thread was doing.

12.jpg

Figure 12

 

 

The Sampler Option:

 

Sampler is used to sample the CPU processes you can perform a snap shout
this is use full when you have a lot of active threads and you want to see the
CPU processing them.

 

 

13.jpg

Figure 13

 

Summary

The jvisualvm utility is available with all JDK and is very easy to user. It provides easy access to
the SUP JVM for monitoring and really takes away the unknowns and shows the processing CPU
Memory and Garbage collection process. What threads are active and what threads are sleeping.
Thread dumps and memory dumps can be controled and performed with out causing
any addtional over head.


How To... Set Up The Environment To Use AppBuilder With SMP Cloud

$
0
0

This guide provides a step-by-step procedure on how to set up your development environment to develop a mobile app using SAP AppBuilder SMP on HANA Cloud. There are 5 main steps: 1. Get access to SMP Cloud and SAP NetWeaver Gateway Demo system 2. Create an Application Configuration in SMP on HANA Cloud 3. Connect SMP Cloud with SAP NW Gateway Demo System 4. Test Application Configuration 5. Use AppBuilder to develop your mobile app

View this SAP How-to Guide

Understanding the ml_database Lock Warning

$
0
0

The purpose of this document is to explain the ml_database lock warning within an SUP context, and how to move beyond this warning to start looking for the root cause of the RBS synchronization problem. The contents will cover the behaviour, some potential causes of the warning and initial steps to identify the root cause.

View this Document

Best practices for SMP cluster administration

$
0
0

In this document you will find some lessons learned and best practices in the form of guidelines for the administration of SAP Mobile Platform clusters. The list is in no particular order and any implementation steps given applies to the Sybase Unwired Platform 2.2. (SUP), but should be adaptable to all 2.x versions of SUP and SMP with little or no effort.

 

MBO Design Best Practices

Having application developers that are not intimately familiar with the various advantages and disadvantages of the available MBO design patterns is typically the biggest problem for a mobility project. If the data layer design of your app is not appropriate for the use-case that the stakeholders have in mind, then the solution cannot be successful. Even worse, the changes required to safe the project at a late stage are so fundamental that they will break most timelines.

 

Links: MBO Design Best Practices

 

Data Tier Memory Limits

All cluster installations of SMP come with three SQL Anywhere database servers running on the data tier machine. These are installed as Windows Services.

  1. Service "Sybase Unwired CacheDB" using port 5200 runs the Consolidated or Cache database under the name "default"
  2. Service "Sybase Unwired ClusterDB" using port 5300 runs the Cluster database under the name "clusterdb"
  3. Service "Sybase Unwired LogDataDB" using port 5400 runs both the Monitor and the DomainLogging database under the names "monitordb" and "domainlogdb"

 

It can happen that these database servers content for the memory of the machine, so limits need to be set up to control that behavior.

  1. On the data tier go to Sybase\UnwiredPlatform\Servers\SQLAnywhere12\BIN64
  2. Edit the three files "cdboptions.ini", "cldboptions.ini", "monitordboptions.ini"
  3. In each file add or change the startup options "-ch 2g" to add a hard limit of 2 GB.
  4. Restart the services

 

The actual limits that you use should suit the memory available on the machine. The usual reasoning is like this: leave 2 GB for the OS, take about 0.25 GB for the ClusterDB (cldboptions), 1 GB for the LogDataDB (monitordboptions), and give the rest to the CacheDB (cdboptions).

 

Links: dbsrv12 options, -ch option

 

Server Memory Limits

The same phenomenon of memory contention can also occur on the SMP server machines. These typically run the following main processes.

  1. mlsrv16.exe J2EE server and replication-based synchronization
  2. OBMO.exe Messaging-based synchronization

 

Other minor processes are: OBServiceManager.exe (Server service process), sccservice.exe (SCC webserver), dbsrv11.exe (SCC database), AdminWebServices.exe (Messaging admin webserver), AMPService.exe (Messaging queue handler), JmsBridge.exe (Messaging .net client), MlsrvWrapper.exe (Replication .net client), rsoe.exe (Relayserver Outbound Enabler).

 

In total the minor processes should not consume more than 1GB. The main processes will only consume a lot, when the corresponding synchronization mechanism is used. Limit the mlsrv16.exe process by limiting both the Java Heap Memory and the Mobilink replication cache size. Both these settings are accessible in SCC (see replication parameters).

 

In order to avoid the situation that these main processes cannot allocate necessary memory during peak times, you can use virtual memory managed by Windows. To do this use Properties > Advanced System Settings > Performance > Settings > Advanced > Virtual Memory > Change and set 'Automatically manage paging file size for all drives'. Monitor the system to ensure that consumption of purely virtual memory only occurs during peak times.

 

Links: process reference, replication parameters

 

Regular Database Maintenance

There are three important areas that are concerned with database maintenance. Make sure to use all of them regularly as well as running regular backups beforehand.

 

Enable SCC Maintenance Tasks

There are four database maintenance tasks that should be enabled in SCC for all domains that are used productively. All of these tasks are meant to keep the database from building up over time.

 

Domain Logging Setup

If you use domain logging, make sure to log the payload only for debugging purposes. Also make sure that you auto-purge your log data as it builds up quickly. In the SCC use the left side navigation panel, go to "SCC > Domains > [Domainname] > Log". On the right side tab bar go to "Settings", go through all domain logs  and click "Configuration" in the tab bar. Finally select the auto-purging option.

 

Unload Data Tier SQL Anywhere Databases

Use the SQL Anywhere dbunload tool to make sure all the databases mentioned under the topic "Database Memory Limit" are regularly unloaded.

 

Links: Backup and Recovery, SCC Maintenance Tasks, Domain Logging Configuration, dbunload options

 

Tune Change Detection Interval and Cache Coherence Interval

Either during your MBO design phase, or (if your MBO package is already deployed) in SCC, you need to adapt these two settings to your business requirements. I will describe the SCC way because this is usually caught late. In the left side navigation panel go to "SCC > Domains > [Domainname] > Packages > [MBO package name]".

 

Change Detection Interval (CDI)

In the right tab bar click on "Subscriptions". Make note of all the Synchronization Groups which have subscriptions (can be none). Click on the "Synchronization Groups" tab. Set the CDI for all synchronization groups that do not have subscriptions to 0, this means change detection is disabled. Note that detecting changes only makes sense, when users have an MBO push subscription on that sync group. This is part of the MBO push notifications mechanism. Typically this push notification feature is not used at all, but the change detection still cause some noticeable load on the database.

 

Cache Coherence Interval (CCI)

In the right tab bar click on "Cache Groups". Order the groups by "Row Count" in descending order. Go through all cache groups with more than 25k rows and check their properties. If the "Refresh Policy" is set to OnDemand (default), then make sure that they have a positive > 0 "Cache Interval". If this is 0, the backend will be polled for every user request putting a lot of load on it. Conversely if CCI is set, it means the cache will be good for that amount of time after each backend request has refreshed it. So the bigger this value, the less your backend will be put under load, but your data will be increasingly less fresh.

 

Links: MBO Push Notifications, Sync Groups and CDI, Configuring Cache Groups and CCI

 

Use Coordinated Universal Time On All Servers

This is particularly useful for international projects, but can be considered a general best practice. In order to run a system that produces synchronized log times across different timezones and independent of daylight savings time, we recommend that you switch all servers to Coordinated Universal Time (UTC).

 

Acknowledgements

For their help and for sharing some of this information, I want to thank Bernd Böhm, Brenda Creaney, Marvin Hoffmann, and Filip Verholen.

Mobility recordings of SAP TechEd 2013

$
0
0

Hello Mobility Learners/Experts,

 

 

I wanted to write this document sometime back but i believe it's not too much late. This document mainly consists of list of all Mobility related sessions , interviews recording at SAP TechEd 2013(new name is SAP d-code). I am sure this would be very much helpful to those who missed few sessions due to their other prior commitments at TechEd and especially those who couldn't attend SAP TechEd. So here you go.

 

 

Mobile Application Development with SAP HANA Cloud Platform

 

  • Introduction to SAP HANA Cloud Platform
  • Overview of Mobile Application Development
  • Providing Access to Business data
  • Scaling and Managing the solution
  • Mobile Enablement of Extension Scenarios
  • Access Link

 

SAP Mobile Platform 3.0 and the Mobile Enterprise

 

  • A good discussion with Tony Kueh (VP, Mobile Solutions and Strategy) and Jim Jaquet (Senior Director, Product Management, SMP)
  • Good demo of app called "SNAP" built on SMP 3.0
  • Access Link


Building Responsive SAPUI5 Applications Following the SAP Fiori Approach

 

  • Overview of SAPUI5
  • What is SAPUI5
  • Key Features & Benefits
  • Detailed explanation about Architecture
  • Support Strategy
  • Access Link

 

How to Get the Best Return on Your Mobile Investments with SAP Mobile Platform 3.0


  • Best talk with Carolyn Fitton, Neil Bhattacharya, William Clark (Global Vice President, Mobile Strategy)
  • Access Link


SAP Mobility Road Maps and Strategy

 

  • Good understanding of End to end mobility solution
  • Product Road Map overview - SAP Mobile Platform
  • Aligning SAP Mobile Platform with Market
  • SMP Value to all Mobile Stakeholders
  • Planned Innovation
  • Access Link

 

Winning with SAP Mobile Apps

 

  • Perfect experience shared by Sriram Kanuri (CEO, Arteria Technologies) on how company has developed 20 different apps on various technologies like SAP HANA, Cloud, Mobility.
  • Access Link

 

Test Strategy for Mobile Applications

 

  • Broad overview of performance testing aspects of mobile applications.
  • Challenges in different types of mobile applications testing
  • Overview of Test Management
  • Mobile application testing using SAP Quality Center & Solution Manager
  • Access Link

 

Unlocking the Potential of SAP Mobile Services

 

  • A good experience shared by Steve Green (Head of Syclo services, SAP) and Shantanu Garg (Head of Mobility Services)
  • Access Link

 

Mobilizing SAP HANA with SAP Mobile Platform

 

  • Introduction to SAP HANA, SAP UI5, SMP, Cordova/PhoneGap
  • Access Link

SAP Fiori Toolkit 1.1.1 Documentation

SAP Mobility Platform 3.0 - Resources

$
0
0

This document aims to bring together all of the web resources for the SAP Mobility Platform - release 3.0. I encourage everybody to add to this document as new content becomes available - It can also serve to identify areas of the platform that perhaps need more emphasis/content.


Marketing content can found at http://www.sapmobile-platform.com/


SMP3 Overviews

 

Get your hands on SAP Mobile Platform 3.0Jens KoernerGet your hands on SAP Mobile Platform 3.0
SMP 3.0 Enablement OverviewJan-G GroeneveldSMP 3.0 Enablement - Overview


Formal Platform Documentation


Individual Component Resources


Kapsel

Getting Started with KapselDaniel Van LeeuwenGetting Started with Kapsel - Part 1
Going Offline with KapselNiklas BaudyGoing Offline With Kapsel Now

 

 

Native Development

Getting started with iOS development on SMP3Brenton OCallaghanGetting started with SMP3 Native OData iOS apps

 


Integration Gateway

Introduction to Integration GatewaySai Harish BalantrapuIntegration Gateway in SAP Mobile Platform 3.0
How to use Integration Gateway with SMP 3Marvin Hoffmann

 

Administration

TBC

 

Installation

TBC


Other Related Resources

Building a Gateway Service with Delta Support - http://scn.sap.com/docs/DOC-47043

Integration Gateway in SAP Mobile Platform 3.0

$
0
0

Introduction to Integration Gateway

 

Integration Gateway is a component which is part of the SAP Mobile Platform, that provides the ability to enable OData services from various SAP and non-SAP (OData and non-OData) datasources.

To build the services the GateWay Productivity Accelerator (GWPA), an Eclipse-based Toolkit, provides tools for modeling and generating components that are deployed through Integration Gateway.

 

Integration Gateway includes:

  • Runtime environment, for connecting to various datasources (both SAP and non-SAP) and fetching runtime data
  • A SAPUI5 based User Interface(UI) i.e  Gateway Management Cockpit, for managing Service Repository.

 

Integration Gateway allows you to connect to different back ends, fetch data at runtime, and convert it into OData models to expose data as an OData service using:

  • Java Database Connectivity (JDBC)
  • Java Persistence API (JPA)
  • Simple Object Access Protocol (SOAP)
  • OData Channel (ODC)

 

The data model developer uses GWPA to model and generate services. The data model developer harmonizes different data models, structures, values, and so on, into a single OData model to be provisioned as an OData service.

 

Enabling Models as OData Services

 

The Toolkit for Integration Gateway allows you to expose OData services based on database tables by mapping the model definition to the corresponding tables. Define an OData model to match the table properties, then bind the OData model to a datasource using Toolkit for Integration Gateway. The resulting OData services can be consumed by any client of SAP Mobile Platform and makes the OData service available for consumption.

 

Prerequisites

 

 

Enabling a data model as an OData service includes:

 

  1. Creating an OData Model.
  2. Creating a service implementation project.
  3. Selecting the datasource to be configured with the service implementation project by specifying the OData references and the datasources to bind with the entity set.
  4. Generating the runtime artifacts and deploying the project to SAP Mobile Platform Server.

 

Managing Services in Gateway Management Cockpit

 

Gateway Management Cockpit is the central UI for all administration tasks for Integration Gateway.

 

Gateway Management Cockpit can be used to:

 

  1. Manage destinations (of type - HTTP, JPA,JDBC)
  2. Manage service registrations (of Type - Custom / ABAP Based OData Services)
  3. Troubleshoot.

 

Reference Scenario - ESPM

 

ESPM Reference Scenario is a sample service which will be displayed in Gateway Management Cockpit. For more information on this Sample service, refer the below given links :

 

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc01994.0302/doc/html/apr1383612310526.html

 

http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc02000.0302/doc/pdf/smp_data_integration_using__integration_gateway.pdf

 

 

More Information

 

http://infocenter.sybase.com/help/topic/com.sybase.infocenter.dc02000.0302/doc/pdf/smp_data_integration_using__integration_gateway.pdf

 

https://help.hana.ondemand.com/gateway_gwpa/frameset.htm?6db20552a78141e49633cbe215c9a568.html

 

http://scn.sap.com/docs/DOC-49985

 

For any queries, contact Balantrapu, Sai Harish <sai.harish.balantrapu@sap.com> or C V, Suma <suma.c.v@sap.com>


Getting started with the SPM evaluation

$
0
0

This tutorial aims at helping you through the first steps during the evaluation of SAP Precision Marketing.

 

The full documentation of SPM can be found here: SAP Precision Marketing – SAP Help Portal Page

 

At this stage it is assumed that you have gone through the SPM device API Trial and that you successfully connected to our Trial demo data and retrieved some offers.

If you did not yet, please request a Trial Account from the SPM Developper community page

In the Device API Trial you were able to:

 

  - Get the client SDK samples and learn how to make calls from your mobile App to the SPM Backend using the Device API.

  - Connect and authenticate to the SPM backend via the SPM device API.

  - Get an offer by retrieving an offer from our sample data in the trial account

  - Get familiar with the sample client SDK to include it in your mobile App

 

 

 

Now let's proceed with the Full Evaluation, you have been granted access to a fresh tenant ready to be loaded with your own content.

 

We will:

  1. Create your first store
  2. Invite a Business User
  3. Create the first Campaign and Offer
  4. Create API credentials for your tenant
  5. Connect your sample app to this new tenant

 

You should have received an invitation from SAP ID service access the system as a Retailer Admin.

 

 

Note: There are 2 types of Users in SPM:

Retailer Admin: can create Stores and invite other users.

Business User: can create Campaigns and Offers.

 

 

After registering and choosing your password, you will be redirected to the SAP Precision Marketing Partner Portal.

 

1. Create a store

     Log in the Partner Portal with your Retailer Admin User

     select the Store Management / Store tab

     click on the create button, and fill just mandatory fields for now...

          Tips:

      • put the correct GPS coordinates for the store so that you can find it later
      • you can chosse a location near you, it will be easier to test.
      • to easily find GPS coordinates, go to google Maps, right click on a point and select what's here.
      • on the Store description you must enter the info in the default langage for your tenant (use en_US if you are not sure)

 

2. Invite a Business User

     Log in the Partner Portal with your Retailer Admin User

     select the Users Management tab

     click create new user and enter the mandatory fields

     select the type as Business User and hit save

 

The user will receive an invitation from SAP ID Service, just like you received.

Now you need to assign rights to this business user, at this stage we will grant this user rights on all stores (you can restrict later)

    Select the Business User you just created

     Hit the Assign Business Group button

     you will see the Administrator group listed first, hit add to add this user to this group.



3. Create your First Offer using the Business User


Login with the Business User account that you just created.


Tips:

     if you are using more than 1 user on the same machine it can be tricky to juggle with accounts as the authentication can happen in the background

          you could use chrome with anonymous mode to get to enter a user name.

          or you can use a different browser for the Business user (say Firefox)



All offers must be part of a Campaign, so let's first create a campaign, then get to the offer.

Create a campaign

     go to the Campaign Management Tab

     click create, fill the mandatory fields

     On the site store select the store you created earlier (at this stage it should be the only store in the list)


Create an offer

     select the Campaign you just created, you should see in the bottom half of the screen a place to create an offer.

     Hit create offer

     you will notice that all defaults from the campaign will be inherited.

     You can add a barcode for the offer (for ex use UPC-A 12345678999)

     the next tab "Offer Target" is where you select the segmentation for your offers, at this stage we will skip this as we did not enter any segments yet (ps this means that the offer we're about to create will be visible by all consumers)

     on the next tab "Offer description" fill in the required fields for the default language (use en_US if you don't know)

     important: Make sure you hit the save button on this tab before moving to the next tab, this will add the data for the language you selected.


    

4. Create your Device API Credentials


Log in the Partner Portal using the retailer Admin

go to the API credential tab.

click create device API Key and select the developer secret option.

enter a secret password/phrase and save, the system will generate a device API key for you to use in conjunction with the secret.


 

5. View your first offer using the Device API


This is where what you learned in the Device API Trial becomes useful.

First you will create your developer ID and then you will make a call to the device API to retrieve the offers around you.


Use the newly created credentials in the sample applications you downloaded with the trial, this should point your sample application to your own tenant.

if you are close enough to the store you created (i.e. within the radius specified) you should see the offer created.



What next?

the next tutorials will focus on creating your first stores and segments programmatically via the SPM Partner API.

Check them out here:

     SPM Evaluation: First steps using the Partner API

     SPM Evaluation: How to use the Partner API in Java


How to access SUP Cluster DB?

$
0
0

Hi All,

 

OBJECTIVE:

 

There are different type of database availble at SUP (Sybase Unwired Platform) side like SUP cahe, SUP monitoring DB, Cluster DB. This Document explains steps how we can access cluster based information from database.

 

REQUIREMENT:

 

  • SUP 2.x

 

   Procedure:

 

You would have checked

  How to access SUP CDB (Cache Database) ? 

How to access SUP Monitoring DB?

 

For accessing ClusterDB, a tool is available. This tool is same for SUP cache, Montoring DB, Cluster DB.

 

Finding Out the path for Cluster DB Tool:

 

  • go to the location: C:\Sybase\UnwiredPlatform\Servers\SQLAnywhere12\Bin32
  • look for dbisql.exe

 

1.PNG+

 

 

  • For ODBC Data Source name, click on Browse, search for clusterdb_mysupcluster_32bit

 

    • Pass User ID: dba
    • Password: sql
    • Click on Connect

1.PNG

 

 

This database contains list of tables which has different information.

 

e.g.  1. there is a table called SLD_SUPSERVER_INFO

 

when you execute this table by select * from SLD_SUPSERVER_INFO

 

it will give you server information like what is server name, what is the installation path for the same sup server etc.

 

1.PNG

2. another table , RELAY_SERVER

it will give you relay server information (asssuming relay server has been installed for that SUP server) like relay server host name, port no, URL etc.

 

1.PNG

 

 

3. You can also check which SUP node is a primary one by running a join query like:

 

SELECT x.CLUSTERID,x.name, y.name , x.LEASEEXPIRES

FROM CLUSTER_RESOURCE x, Cluster_member y where x.OWNER = y.MEMBERID

 

 

It is not possible to share all tables' screenshots.so here i am listing down all the tables name available in this cluster database.

 

you can access these tables from the tool by running a simple object query.

select * from table name

 

  1. async_queue_prop
  2. BACKEND_FARM
  3. BACKEND_SERVER
  4. cache_addr_mapping
  5. cache_config
  6. CLUSTER
  7. CLUSTER_INSTALLATION
  8. CLUSTER_MEMBER
  9. CLUSTER_PROP
  10. CLUSTER_RESOURCE
  11. djc_pc
  12. endpoint_prop
  13. ENTITY_TYPE
  14. FARM_AND_PORT_TYPE
  15. MEMBER_PROP
  16. RELAY_SERVER
  17. RELAY_SERVER_HTTP_CREDENTIAL
  18. RSOE
  19. RSOE_PROXY
  20. RSOE_PROXY_USER
  21. SLD
  22. SLD_SUPSERVER_INFO
  23. SUP_APNS_CONFIG
  24. SUP_BES_CONFIG
  25. SUP_BIS_CONFIG          
  26. SUP_GCM_CONFIG
  27. SUP_PUSH_CONFIG
  28. SUP_SERVER_PORT
  29. SUP_PUSH_CONFIG
  30. SYNC_DATA

 

Note: For more details check this Wiki Page.

 

I hope this document will help you.

Your comments/Suggestions are most welcome.

 

Regards,

Jitendra Kansal

Collaboration Workspace "CW" Mobility sample projects are available @ SCN WiKi

$
0
0

Dear All,

 

Not sure if you are aware that Collaboration Workspace (cw.sdn.sap.com) has been shutdown and unfortunately sample projects available over there can't be accessed now. I was having few mobility related sample projects with me. I have uploaded it at SAP Mobility - Wiki page.

 

In case if you need to check,

 

SUP sample Projects - SAP Mobility - SCN Wiki

SAP AppBuilder Developer Center

$
0
0

Discussions (Forum) | Blog Posts | Documents (Articles / e-Learning)

Ask a Question (check category "AppBuilder")

AppBuilderScreen2.PNG

 

Updates: The latest Google Chrome updates , as early as version 34.0.1847.131m, seemed to have caused an issue with SMP Onboarding in AppBuilder. If you are having issue retrieving data from SMP server with the latest Chrome, please download the latest AppBuilder (from 1.0.1252 onwards), it contains the fix for the issue.

 

Introduction

The SAP AppBuilder is a browser-based application development tool for developers to easily build HTML5/JavaScript mobile applications. It provides:

  • WYSIWYG form designer:
    • Drag & drop UI controls to the application’s screen while developers design it
    • Customize application UI controls easily with properties panel.
    • Display application with live data from connected data-sources as it is designed
  • Easy data binding in a graphic way with data-sources from OData, RESTFul services to help developers speed up their development
  • Super Control for further boost of developer’s productivity, such as:
    • SuperList: metadata based List control that retrieves, processes and presents data from the OData/RESTFul services with no code or little code
    • Chart: metadata based Chart control that retrieves data from the OData/RESTFul services and renders into compelling charts with no code or little code
  • Automatic generation of event handlers skeleton code for user defined events
  • Switch between designing view and coding application logic easily with just a single click and enhanced code editor with syntax highlighting
  • Preview and Run and the application on the desktop browser with just a single click
  • Customize application with custom CSS files

 

Get AppBuilder Now!

Download AppBuilder from here (scroll down to the AppBuilder section).

 

Resources

Product Documentation

Check out our product documentation on the SAP Help portal.

 

Tutorials

Check out our tutorial to kickoff your development quickly with AppBuilder:

  1. Quick start guide on how to Create a Simple App
  2. Create a data oriented app using SuperList
  3. Create an analytic app using Chart
  4. Create a tab-based app using TabApp

 

Tutorial Videos

Also check out AppBuilder tutorial video here: http://www.sapmobileacademy.com/appbuilder-tutorial/


Useful Links & Blogs

  1. If you would like to know more about SuperList there is an excellent comprehensive 2 parts blog by Paul Horan about SuperList. View it here: Part 1, Part 2
  2. There is also a blog by Patrick Wenger about deploying application to a real device using AppBuilder here
  3. Useful blog by Martin Grasshoff about connecting AppBuilder to SMP Cloud Version here.


AppBuilder Dev Community

Check out our new dev community! We created a category called 'AppBuilder' so get blogging and tick 'AppBuilder' before saving and we will answer your questions.

  • All our listed content (blog, questions, documents) under 'AppBuilder' here
  • You have a question regarding our solution? Ask your question here


Integration with CA SiteMinderSAP Mobile Platform 2.3

Regenerating SMP 3.0 Agentry Certificate

$
0
0

During installation of the SMP 3.0 server, it will automatically generate a self-signed certificate that will be used for Agentry server authentication (among other things).  This certificate will be based on the fully qualified domain name (FQDN) at the time of the installation.  Should this change for any reason or need to reference an external name versus an internal name you will need to regenerate the certificate.

 

This document outlines the steps needed to regenerate the certificate using the Java keytool utility.  Please note that you will need to know the Keystore password you specified during installation of the SMP 3.0 server to perform these steps.  These commands assume the C:\SAP\MobilePlatform3\sapjvm_7\bin directory (default location) is in your path and that you are executing the commands from the C:\SAP\MobilePlatform3\Server\configuration directory.

 

  1. Remove the existing certificate
    • keytool -keystore smp_keystore.jks -delete -alias smp_crt -storepass {keystore password}
  2. Create the new self-signed certificate (edit the dname information to match your organization details}
    • keytool -keystore smp_keystore.jks -genkeypair -keyalg RSA -sigalg SHA1withRSA -validity 3650 -alias smp_crt -dname "C=US, ST=IL, L=Chicago, O=SAP, OU=Global Mobility Services, CN={New FQDN}, emailAddress={your email address}" -ext BC:ca:true -keypass {keystore password} -storepass {keystore password}
  3. Export the new certificate for use with your Agentry clients
    • keytool -keystore smp_keystore.jks -export -alias smp_crt -file smp_crt.cer -rfc -storepass {keystore password} -keypass {keystore password}
  4. After executing these commands restart your SMP 3.0 server to pickup the new certificate

 

In my case, I frequently need to regenerate my certificates due to changing networks and IP addresses so I have created the attached batch file to simplify the process.  I simply execute the batch file and it prompts me for the password and new FQDN and performs all the other steps opening Windows explorer to the configuration directory at the end so I can easily install, copy or email the new certificate out.

 

Note, if you download the attached file, please be sure to rename the file from .txt to .bat before using and also edit the batch file to set the SMP3ROOT location, CERTINFO (country, state, locattion, organization, org unit) and CERTEMAIL for your specific needs.

 

Enjoy!

SAP Mobile Platform 3.0 Overview

$
0
0

SAP Mobile Platform 3.0 combines three best of breed mobile platforms into one. Sybase Unwired Platform, Sybase Mobiliser and Syclo Agentry have been combined to create the SAP Mobile Platform 3.0. Also included is Integration Gateway, a middle ware component for exposing SAP and non-SAP system services as OData endpoints.

View this Presentation


SMP 3.0: Custom development of SAP Work Manager 6.1 on Agentry Server

$
0
0

I have been spending a couple of days on setting up an environment for doing custom development on SAP Work Manager 6.1 on SMP 3.0.

 

I have been missing a guide to instruct me step by step how to do this. As I have been unable to find this I will now provide it to others.

 

This guide will NOT show you how to do development on the Agentry platform, but how to prepare and setup an environment to do this.

 

Due to the limitations of SMP 3.0 SP3, where you can only deploy one Agentry instance to the mobile platform, you will want to install a production Agentry server instance on your central SMP 3.0 Development server. This will be used for unit test by you and your end users. For development purposes you will install a local SMP 3.0 server on your personal PC, and install an Agentry development instance on this.

 

Documentation:

Various documentation exists on these topics, but to pinpoint exactly what you need is hard. Here is a few links to some relevant docs:

 

SMP 3.0

http://help.sap.com/smp303svr/

http://infocenter.sybase.com/help/topic/com.sybase.infocenter.pubs.docset-SMP-SDK-3.0.2/doc/html/title.html


SAP Work Manager 6.1

http://service.sap.com/instguides

Go to: SAP Components -> SAP Work Manager -> SAP Work Manager 6.1

From here you may download a number of PDF documents.

Especially document "SAP Work Manager 6.1 Installation Guide" is of interest.

 

 

Prerequisites:

You will need to download a few files before starting the installation and setup process. You will need an S-user with proper authorizations for most of the downloads. I am using a 64-bit PC, and hence is downloading 64-bit installables.

 

P1. SMP 3.0 installer.

Go to http://service.sap.com/swdc

Go to: Installations and Upgrades -> A-Z Index -> M -> SAP MOBILE PLATFORM -> SAP MOBILE PLATFORM 3.0 -> Installation

Download the object 51048153 (for Windows).

It is a zip archive, which must be extracted.

The installer is: .\SMP30SP03SVR\setupAMD64.exe

 

P2. JDK - version 1.7

You will need a JDK version 1.7 to build Java classes for the interaction between the Agentry Server and the SAP Backend.

Go to: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Choose JDK download for latest release.

 

P3. Eclipse - Juno, version 4.2.2

From this link you can download Eclipse (classic) in the proper version:

http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops4/R-4.2.2-201302041200/eclipse-SDK-4.2.2-win32-x86_64.zip

 

P4. Agentry plugin for Eclipse

You need an Eclipse plugin for modifying Agentry definitions.

Go to http://service.sap.com/swdc

Go to: Installations and Upgrades -> A-Z Index -> M -> SAP MOBILE PLATFORM SDK -> SAP MOBILE PLATFORM 3.0 SDK -> Installation

Download the object 51047862 (for Windows).

It is a zip archive, which must be extracted.

The plugins are located in folder: .\modules\AgentryEditors

The 64-bit plugin archive is named "Agentry_7.0.0.537_EditorPlugin_x86_64.zip".

 

P5. SAP Work Manager 6.1 Application and Agentry utilities

The SAP Work Manager 6.1 Agentry application and the necessary dll's, jar's and config files are provided by an executable that needs to be run. Here you will provide details for the JavaBE.ini file (backend hostname, client, username, password etc). This will generate the needed files for you.

Go to http://service.sap.com/swdc

Go to: Installations and Upgrades -> A-Z Index -> W -> SAP WORK MANAGER -> SAP WORK MANAGER 6.1.0 -> Installation

Download the object 51048537_6 (SAP Work Manager 6.1.0 Deployment).

It is a zip archive, which must be extracted.

The executable is located in folder: .\SAP_WORK_MANAGER_6.1.0_\Work_Manager_Deployment

The executable is named "SAPWorkMgr610Deployment.exe".

 

 

P6. Java Source code for SAP Work Manager 6.1

In the Java folder in you Agentry root directory a number of .jar files are located. They include the Java class files which do the interaction between the Agentry server and the SAP backend. If you need to make modifications to extend the data that is being passed, you will need to be able to change the source code. By default the source code is NOT available, when you download the Work Manager. You will need to sign a contract with SAP to get access to the source code. Once this is in place, you can find the source code in the SAP Software Download Center.

Go to http://service.sap.com/swdc

Go to: Installations and Upgrades -> -> A-Z Index -> M -> SAP Mobile Solutions -> SAP Mobile Source Code -> SAP WORK MANAGER SRC -> SAP WORK MANAGER SRC 6.1.0 -> WORK MGR JAVA SRC 6.1.0 -> # OS independent

Download the object WORKMGJAVASRC_01_0-80000157.ZIP

The object is a zip archive, which should NOT be extracted (it will be imported directly to Eclipse).

 

P7. ABAP Backend AddOn

For the SAP Work Manager 6.1 to work you need to install the following ABAP AddOn's on the SAP Backend.

SMFND, 610_700, SP 0003 (Download object: SAPK-61003INSMFND)

SMERP, 610_700, SP 0003 (Download object: SAPK-61003INSMERP)

Go to http://service.sap.com/swdc

Go to: Support Packages and Patches -> Search for Support Packages and Patches.

From here type in the above download objects, and search for them.

These should be installed by a SAP Basis person.

After the installation of the AddOn's there are some steps that needs to be carried out on the backend. Refer to the documentation of SAP Work Manager 6.1 for details.

 

 

 

 

Installation overview

Now all necessary files have been downloaded.

An overview of the installation process is described below.

Note: You need local admin rights on your PC to perform most of the following steps, so please make sure this is in place.

In the Installation overview I assume that the ABAP AddOns have been installed and the (standard) Mobile Application has been prepared properly on the SAP backend.

 

Step 1. Install JDK 1.7 on your PC

Run the JDK 1.7 installer. Installation will take a few minutes.

 

Step 2. Install SMP 3.0 on your PC

Run the installer setupAMD64.exe.

Install the SMP 3.0 as a Development Server using a local (Derby) DB.

The installation is very simple.

A few icons will be placed on your desktop, to start and stop the SMP server, as well as a shortcut to the Administration Cockpit. You will need local admin rights to start and stop the server.

 

Step 3. Setup Eclipse

Extract the downloaded .zip archive.

Copy the folder "eclipse" to a suitable location. No installation is required.

Start Eclipse from the Eclipse.exe executable.

Assign an empty folder as the workspace of the Eclipse installation.

 

Step 3.a. Install the Agentry Plugin to your Eclipse installation

From Eclipse go to Help->Install new software…

In the Install window click the Add button in the top right corner.

In the Add Repository Window click the Archive button.

Navigate to the downloaded Agentry Plugin described in prerequisite P4.

(Plugin archive: Agentry_7.0.0.537_EditorPlugin_x86_64.zip)

Mark the "Agentry 32-bit Editor" node and install the plugin via the wizard.

 

Step 4. Install (extract) SAP Work Manager 6.1 application to your PC

You will now run the executable "SAPWorkMgr610Deployment.exe" described in prerequisite P5.

While running the executable you should provide various connection details for connecting to your SAP backend. This is the stuff written to the JavaBE.ini file. The service user password is now encoded into the ini file, which is a nice change compared to previous versions of Agentry.

At the end of the process you must provide a target where the generated files are stored. This can be any directory on your PC, and does not have to be related to the SMP server.

The files extracted are placed in the folder:

<root> \configuration\com.sap.mobile.platform.server.agentry.application

 

Step 5. Import the extracted Agentry (SAP WorkMgr 6.1) application to Eclipse

In the above folder a .zip archive called "SAPWM-6.1.0.0.zip" is placed.

In here you will find the Agentry.ini file as well as an Application folder where a productive version of the Agentry application is stored.

Extract the .zip archive to a new destination (do not place it in the same folder as the zip archive).

Remove the zip archive from the folder.

From Eclipse choose File->Import…

Choose Agentry Project-> Agentry Server application into workspace (Agentry.ini)

In the Wizard, click on the Browse button for the field Agentry Server.

Navigate to the Agentry.ini file of the extracted archive described above.

The fields Application Version, Project Name and Application Name will be filled automatically.

For the Development Server, browse to the same Agentry.ini file.

Click Finish.

The Agentry application will now be imported as an Agentry project to the Eclipse installation.

 

Step 6. Export/publish the Agentry application as Development version to local folder

After the Agentry application has been imported to Eclipse, it can by published as a Development version application to your local folder.

In the Eclipse toolbar there will be an Agentry Publish button - click this.

You will be warned that there are warnings in the application - just accept this.

In the next popup you will keep the default settings, which is to publish as Development version, To Server should be pointing to your local folder with the Agentry.ini file and the Application folder.

Click Next.

The Wizard will now export the Agentry Application in a Development version to your local folder.

 

Important Note: Keep in mind that at this point we don't even have an Agentry Server defined, so for steps 5 and 6, we are only interacting with the file system.

 

Step 7. Prepare the development version of the Agentry application for SMP

You will now go to the folder <root> \configuration\com.sap.mobile.platform.server.agentry.application

from step 4 (folder A).

Make sure the zip archive "SAPWM-6.1.0.0.zip" has been removed as described in step 4 (the folder where the zip archive was extracted to is called folder B)

Now copy the Agentry.ini file from the folder B to folder A.

Create a folder called "Application" in folder A.

Copy the entire folder "Development" of B\Application to A\Application.

Now Zip the contents of folder A. Make sure to NOT zip the folder itself but rather all its components.

 

Step 8. Define Agentry application on the SMP 3.0 and import the Development Version Application

Now logon to your newly installed SMP 3.0 system on your PC.

Go to Applications and choose New.

Create an application of type Agentry, and provide it with a security profile of type "No Authentication Challenge". This is chosen as the user will be authenticated against the SAP backend system and not the SMP.

On the tab "App Specific Settings" Browse to the archive created in step 7, for the Publish Agentry App field.

Save your Application.

Restart the SMP.

Your Development version Application should now be ready for use.

Go to: https://<FQDN-SMP-host>:8081/SAPWM

You should be presented with a screen saying: "I am here!"

 

Step 9. Modify the Java Source code of SAP WM 6.1 to Eclipse (optional)

If you need to make extend the data structures being passed between the Agentry Server and the SAP Backend, or need to implement advanced functionality, then you will need to modify the Java source code supporting the Agentry application.

 

Step 9.a. Import the source code to Eclipse

In Eclipse choose File->Import…

Choose General->Existing projects into workspace

In the Import window click the Browse button of the "select archive field".

Navigate to the zip archive "WORKMGJAVASRC_01_0-80000157.zip" described in prerequisite P6.

Make sure all projects are marked for import and the tick for "Copy projects into workspace" is set.

Click Finish.

The source code is now loaded into Eclipse.

There are some invalid references to some files in folder C:\ProductDev\sap\jars.

The easiest fix is to create these folders, and copy the files in question from folder A in step 7.

Then all projects should be validated.

 

Step 9.b. Modify the Java source code

You can now do your changes to the Java Source code directly from Eclipse.

 

Step 9.c. Export the Java source code

When you have all your changes, you need to export the Java classes to a .jar file (Java Archive).

Select all the source code projects from the Project Explorer in Eclipse.

Choose File->Export…

Choose Java -> JAR file

In the JAR export wizard, tick the 2nd and 3rd option ("Export all output folders… " and "Export Java Source…").

Choose a destination for your .jar file.

Click Finish

 

Step 9.d. Import the new Java source code to SMP

You will now need to upload the .jar file to the Java folder of your Agentry server.

The easiest method, is to do a simple file move directly to the file system of the SMP server.

The Java folder of the SMP server is:

SMP_HOME\Server\configuration\com.sap.mobile.platform.server.agentry.application\Java

 

Step 9.e. Configure the Agentry server on SMP 3.0 to use new .jar file

You now need the Agentry Server to use this new .jar file.

Go to the Administration Cockpit and administer the Agentry Application.

Go to the tab Backend in the JAVA-1 section.

The field Class Path needs to be changed to include your new .jar file.

By standard the Java Project "SAP-Common" has its own .jar file, and hence 2 .jar files are used.

But if you exported everything to a single .jar file, then the reference to the 2 SAP jars should be replaced with a reference to your new jar file.

The default value is: ./ini4j.jar;./sapjco3.jar;./Java/Agentry-v5.jar;./Java;./Java/SAPWM-6.1.0.0.jar;./Java;./Java/SAPCommon-133461.jar;

Your new value should be:

./ini4j.jar;./sapjco3.jar;./Java/Agentry-v5.jar;./Java;./Java/<YourNewJar>.jar;

Restart the SMP.

Check the startup.log file of the Agentry server, and ensure that you don't have any errors on your server.

If this is the case, your are all set.

 

Step 10. Test the application.

Use the ATE or (as we did) install the Android SDK and test via your Android Emulator.

The connection process from the new 7.0 client are a little different from previous versions. You no longer provide a server name and port, but rather an https endpoint (URL).

The default URL endpoint for SAP Work Manager 6.1 is:

https://<FQDN-SMP-host>:8081/SAPWM

 

The application ID ("SAPWM") can be found in the startup.log of the Agentry Server.

 

 

That's it - I hope that this will be useful to others.

 

 

Søren Hansen

SMP 3.0: Setup local Agentry development environment with source=INI in JavaBE.ini

$
0
0

Problem:

You want to setup a local Agentry development environment on your PC to modify an existing Agentry application you have installed in your system landscape. You install an SMP 3.0 and publish an Agentry Application to your SMP (check SMP 3.0: Custom development of SAP Work Manager 6.1 on Agentry Server).

 

Now you need to setup the mobile application parameters for the interaction between Agentry and your SAP backend. You will want your production instance (central SMP 3.0 server) to use source=SAP, meaning you maintain the parameter values on the backend. However if you want to make changes to the parameters, which only influence your local installation there are 2 ways of doing this:

 

1. Copy the (productive) mobile application in the Configuration Portal on the Backend, and setup your environment to use this.

2. Use source=INI in your JaveBE.ini file, and maintain all parameters in the JavaBE.ini file.

 

If you are working in sprints and needs to do this over and over, solution 1 may not be a good solution for you, and you will wish you could just do changes locally on your SMP server.

The problem with solution 2 is that there's is no standard way of getting the mobile application parameters from the productive mobile application to the JavaBE.ini file.

 

Solution:

I have created a small ABAP program (please excuse the state it is in, consider it to be a draft). It is attached to this post and can easily be copy-pasted in your local system.

Run it and it will generate a text file with all the key/value pairs of the parameters for your (production) mobile application.

 

Then change the value (in your local server) of source to INI (from SAP) in the JavaBE.ini file.

Append the content of the generated text file at the end of the JavaBE.ini file.

If you want to make local modifications do this also in JavaBE.ini.

 

Publish to SMP.

Restart SMP.

 

Now you can test you local changes to the parameter value.

 

When your test is done, you can save the new value in the SAP backend, and afterwards you can easily realign your local environment with your central one.

 

Hope this may help somebody.

 

 

Søren Hansen

How to Configure REX Application and SUP/SMP 2.3 to Support LDAP Authentication

$
0
0

This technical document explains how to configure a REX application to support LDAP in SAP Mobile Platform 2.2.x or higher.

View this Document

SAP Mobile Platform 3.0 - Options for Developing Your Own Apps

$
0
0

SAP Mobile Platform 3.0 allows for numerous options for developing your own mobile applications. From native to hybrid mobile applications, the SAP Mobile Platform will support it. This session will give you an overview of what options are available to you and what makes the most sense for you projects.

View this Presentation

App Builder vs River RDE

$
0
0

Dear All,

 

There has been a great demand to develop Web Applications for Mobile and there are different Tools and IDEs  available for developers .

App Builder and River RDE are two different  Web IDE s offered from SAP to ease the development process of web applications for mobile underlying the UI5 libraries.

 

This blog mainly compares the different features available in each of them.

 

Features supportedAppbuilder ( 1.0.1252 )River RDE ( Beta )
Release DateNovember 2013Sapphire Orlando 2014 , Beta
Pre Requisites

Node.js, JDK, cordova ,

Browser (Chrome /Safari )

Hana cloud account, Hana Cloud Connector and a Browser (Chrome/Safari)
Target AudienceDevelopersDevelopers, Business Experts and Designers
Collaborative Developmentnoyes
Runs On premiseyesno
Mock Data supportyesyes
OData consumptionyesyes

Github integration

noyes
Rest integrationyesno
EDMXnoyes
Version maintenancenoyes
SMP integrationyes

supported in future

Cordova and Kapsel supportyessupported in future
IOSyesyes
Androidyesyes
Simulatoryesyes
Develop Fiori like applicationscomplexyes
Extending Fiori applicationsnoyes
UI5 frameworkyesyes
CSS Stylesyesyes
makityesyes
Default templatesSuperlist , Charts , Tab Fiori
Default ui5 librarysap.msap.m
WYSIWYGyesyes
Theme Designer integrationnosupported in future
PriceFreeFree

 

Learn more about

App Builder

App Builder Tutorials

River RDE

River RDE Tutorials

 

PS:

This document is open for editing and community members can feel free to add /edit points as the product version changes.

Viewing all 539 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>