calling webservice from mainframe batch cobol program - zos

Currently, we are connecting getting information from web service through cobol by using "db2 xml" "SOAP HTTP NV".
Currently using sql mentioned below,
exec sql
select
db2xml.soaphttpnv
(:internet protocol address,:webservice namespace,:soap xml schema
structure)
into :varchar-output
from sysibm.sysdummy1
end-exec.
I am pondering the possibilities on hitting the web service without intervention of db2.
I came accross z/os connect ee. I am looking forward to find out the components that would be required in z/os connect to ensure calling SOAP based webservice from cobol(without intervention of db2).
Any suggestions from stalwarts and experts who have achieved this would be much appreciated.
Many thanks in advance!

You could also use IBMs z/OS HTTP/HTTPS Protocol Enabler to invoke services. We do this in batch programs and IMS transactions. Check https://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v2r2.ieac100/ieac1-client-web-enablement.htm for more information.

z/OS Connect EE only supports RESTful web services using JSON, not SOAP. You can do requests outbound using something called "API requester".
"Configuring z/OS Connect EE to support API requesters" in the IBM Knowledge Center gives details.

We faced similar situation few years ago that we able to invoke the webservice from the CICS (SOAP request) but we don't have option for webservice from batch. So , we triggered the CICS program(EXCI) from batch with DFHS pipeline targeted CICS region where the data passed as parameter to DFHCOMMAREA/ separate table to have data if huge volume then with containers and channels generated xml and invoked the webservice (end points are already defined in the CICS region).

Related

Hosting WCF service using powershell

I have about 3 WCF services to be hosted in IIS and 2 as Windows Service in the same server.
In order to make the deployment automated, I am thinking of using Powershell which will read the configuration from a file (json, or xml) containing all the required information for the service to be hosted (type of host, port etc). And also write to log file about the steps that it executed and status of service.
Is it technically possible to do it in Powershell ? I'm sure from where to start with, and searching over internet did not give me a proper clue/direction.
Please advice with links or samples. Thanks.

Is This MSDTC configuration Issue?

It seems I am running into the Microsoft Distributed Transaction Coordinator (MSDTC) related issue.
SCENARIO
I am using TransactionScope and with in the single scope it hits two different databases on different servers (for instance, DB_A running Windows Server 2003 and DB_B running Windows Server 2008). One database is accessed using Entity Framework 4.0 and another using normal ADO.NET APIs.
When I run the application from my development machine (running WinXP) it commits and rollbacks both the connections accurately. But when I run the application, deployed on another server (for instance WAS_A running Windows Server 2003) it commits correctly but in case of exception is doesn't roll back the database activities on both the servers.
I thought it would be the MSDTC configuration issue on the WAS_A. So I went to the MSDTC -> Security Configuration and checked all the available options (as I did previously on other machines). But still I am facing the same issue.
Looking for your expert advices. :)
I believe that you need to look into Enabling Transaction Flow. Specifically, take a look at how one may error and the other complete as described in TransactionScope and WCF Services:
an error in a second WCF service call was NOT rolling back the changes made in a previous WCF service call...
In order to create an ambient transaction in your client and ensure that it is used by your WCF services...
The article then details the following steps:
Configure Your Binding with transactionFlow
Decorate Your Interface with [TransactionFlow(TransactionFlowOption)]
Decorate Your Method with [OperationBehavior(TransactionScopeRequired)]
Optionally update your Connection Strings with Transaction Binding*
*Note: This is optional in my opinion.

How can I create & edit database of Sql Azure using SQL Server 2008 - R2

I have sql azure database and to create and edit database using portal is very boring task due to it' user interface, when i will connect it with my local sql server R2 then i can not able to edit , create table from there.
Is there any way to make it possible , Please give me some solution for that
At this time, the two options available are the web user interface (which will be improved over time) and SQL Server Mgmt Studio (using queries; no user interface) for which SQL Azure support will also improve over time.
After all i found one 3rd party client to manage SQL Azure and that is RazorSQL- Awesome tool! I have write down about it in my blog, see here
Navicat is a commercial application that offers access.
http://www.navicat.com/products/navicat-for-sqlserver
Personally I vastly prefer it to the Microsoft web interface

Connect to JMX using PowerShell

I am not a developer so please keep that in mind when reading the following message:
I need to be able to use Windows PowerShell to connect to a JMX RMI agent on a host, is this even possible ?
The example string from the java client I have been given is as below:
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:7979/jmxrmi");
The reason for this is that I am doing other work in my PowerShell script and would like to keep it all in one place.
Thanks !
This is an unusual mix of two technologies, but it is possible.
On the off-chance that you are attempting to connect to a JBoss server, the quickest way may be for you to call twiddle, a command tool that will dispatch JMX requests to the target JBoss server and return the results to standard out.
Another way is to implement the Jolokia agent on the target servers. This will allow you to issue JMX requests using REST. Responses will also be returned in REST format which you can process in PowerShell using one of these solutions.
Thirdly, you can also deploy the JMX-WS service on your target servers which will allow you to communicate with the JMX server using web-services. This document provides some VBScript examples of this.
None of the above actually uses the JMXServiceURL syntax you outlined, and I cannot think of a way you could actually cleanly integrate this RMI based protocol into PowerShell, but hopefully one of the above will work for you.
========== UPDATE ==========
There may be a way to use the RMI implementation. Take a look at IKVM. It is a Java Byte Code to .NET compiler. I have successfully compiled JMX/RMI java code into a .Net assembly and used it from C#. I think PowerShell will do the same thing.

Using Entity Framework with Informix

I've been trying for quite some time to use Entity Framework with our IBM Informix databases. Hours of searching has pointed me towards installing the IBM .NET Data Server Provider, which I have installed, however when I attempt to add a new Entity Model to my project I only have the Microsoft SQL Server Data Providers listed. Am I missing a step? Is this even possible?
I am not an expert on Windows or .NET; treat any comments I make with due caution.
Installing the .NET Data Server Provider is an important first step. You now have to make sure that you can use it to connect to the Informix databases you want to manipulate. There are several things you'll need to check here:
Is the server (meaning the Informix instance) configured to allow DRDA connections?
By default, it probably isn't.
If you're the DBSA (database system administrator), you'll need to check that you've enabled 'drsoctcp' connections on the system, and configured a server alias to use that connection.
If you're not the DBSA, you'll need to chat with your DBSA to get the relevant information.
Assuming that you have DRDA connectivity enabled at the server side, you then need to ensure you have an appropriately configured ... DSN? Your client code needs to be able to connect to the server.
There is no reason I'm aware of why it cannot be done. However, I don't know exactly how to guide you step-by-step through any of the above.
You might need to seek assistance from IBM Technical Support.
You would help everyone if you clarified which version of Informix (the DBMS) you have, along with the version information for the platform where it is running (whether Windows or Unix, and the o/s version information) - and which version of the Data Server Provider you are using (and which variant of Windows you are using it on).