z/OS DFSMS

 View Only

 https -

Bill Svenningsen's profile image
Bill Svenningsen posted 07/22/26 07:51 AM
Hi guys
 
I'm Bill from Denmark in a company Bankdata
z/OS 3.2
 
Running a POC,  Can we use CDA to move data to the Azure Cloud
Using  AZURE.json from /usr/lpp/dfsms/gdk/samples/providers 
Only have modified "host" and "region"
 
But when I'm using GDKUTIL,  listning,upload or download.  I got the same error,
 
GDKU0101E ERROR DURING UPLOAD REQUEST. GDKRC=904: Request failed (bad HTTP response code)
GDKU0114I RESPONSE BODY CONTENTS: <?xml version="1.0" encoding="utf-8"?><Error><Code>OutOfRangeInput</Code><Message>One of the request inputs is out of range
 
DEBUG: generic_rdhrexit for header 'Content-Length: 226'                       
DEBUG: generic_rdhrexit for header 'Content-Type: application/xml'             
DEBUG: generic_rdhrexit for header 'Server: Microsoft-HTTPAPI/2.0'             
DEBUG: generic_rdhrexit for header 'x-ms-request-id: ......-6bba-19
DEBUG: generic_rdhrexit for header 'x-ms-error-code: OutOfRangeInput'          
DEBUG: generic_rdhrexit for header 'Date: Wed, 22 Jul 2026 .......:44 GMT'       
DEBUG: buffer_rbdyexit: Entry                                                  
DEBUG: Response data: <?xml version="1.0" encoding="utf-8"?><Error><Code>Out
request inputs is out of range.                                                
RequestId:2c249600-70.....................                                 
Time:2026-07-22T09:16:44.9948174Z</Message></Error>                            
DEBUG: buffer_rbdyexit: Exit                                                   
DEBUG: get_optional_parm: Get-Response-Code:NOT FOUND                          
ERROR: Bad HTTP status code 400                                                
 
 
Please advise
 
Thanks
rgds  Bill Svenningsen
 
//GDK     EXEC PGM=GDKUTIL,REGION=0M,   
//             PARM='PROCESS=WAIT'      
//SYSPRINT DD  SYSOUT=*                 
//SYSOUT   DD  SYSOUT=*                 
//SYSIN    DD  *                        
 LIST PROVIDER(AZURE)         LOG(DEBUG)
//OBJNAME DD *                          
 /data/                                 
/*                                      
Andrew Wilt's profile image
Andrew Wilt

Hi Bill, That is a strange error message. It would be helpful to see what HTTP stuff was sent. Would you add the WEBTOOLKITLOGU keyword to the SYSIN keywords? That will print out a bunch of the HTTP processing details.

Please redact any stuff like the host, or other identifying info before posting. I would be looking for what was the HTTP request sent, along with the headers.

Andrew

Bill Svenningsen's profile image
Bill Svenningsen
Hi  Andrew,
 
Thanks for responding rapidly, it's appreciated
 
Yes, I have looked at mainframe log, don't see any issues here
I have added WEBTOOLKITLOGU and attached the output
 
Bill
Attachment  View in library
IBM_comm.txt 10 KB
Andrew Wilt's profile image
Andrew Wilt

I think we'll need to open a case to dig deeper. Nothing in the output gives an indication as to what it thinks "Out of Range Input" is for. I have seen some comments about some times Azure can return this if the signature that was calculated had a problem. (I don't know why they wouldn't just return the HTTP 403 permission denied error in that case, though.) In the CDA Debug log, I would be looking for the lines that talk about the Canonical headers, to see if there was anything weird.

INFO: Canonicalized headers = <x-ms-blob-type:BlockBlob                                                                 
 x-ms-date:Thu, 16 Jul 2026 11:18:23 GMT                                                                                 
 x-ms-version:2019-12-12                                                                                                 
 >                                                                                                                       
                                                                                                                         
 INFO: to_sign = PUT                                                                                                     
                                                                                                                         
                                                                                                                         
 39058                                                                                                                   
                                                                                                                         
 application/octet-stream                                                                                                
                                                                                                                         
                                                                                                                         
                                                                                                                         
                                                                                                                         
                                                                                                                         
                                                                                                                         
 x-ms-blob-type:BlockBlob                                                                                                
 x-ms-date:Thu, 16 Jul 2026 11:18:23 GMT                                                                                 
 x-ms-version:2019-12-12                                                                                                 
 /dfsms/cdatest/cat_1_sitting1.txt                                                                                       
 INFO: Azure authentication: Signed request = N2sQSEEutpE6eePLOIzngDmviPZen5tk7EoRCOI8XUE=      



Maybe there is a problem with the shared access key that you saved for the Azure account. I have seen a user in the past get an 'invalid' credential because the wrapping of the credential in the ISPF panel got an additional blank imbedded into it. We never could figure out what the issue was with that ISPF configuration.

It may be worth using GDKUTIL CREDENTIALS(ADD) to save your Azure credentials instead of the ISPF application. Example 9 in the DFSMSdfp Utilities for GDKUTIL is where I would start. For Azure credentials, the JSON creds file would have:

{
  "accessKey": "<Azure_account_name>",
  "secretAccessKey": "<My_Azure_key>"
}
Travis Thorne's profile image
Travis Thorne

Hi,

Unfortunately, I don't have Azure, but I've used CDA in the past to work with an on prem minio server,

this sample might help - 

//CDATEST JOB CLASS=A,MEMLIMIT=NOLIMIT,MSGCLASS=H,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID.,REGION=0M,TIME=1
//*
/*JOBPARM SYSAFF=LTE1                                                    */
//*
//*-+----1----+----2----+----3----+----4----+----5----+----6----+-
// EXPORT SYMLIST=* * Job Created on 20240629 By TRAVIST
//*-+----1----+----2----+----3----+----4----+----5----+----6----+-
//*
//* JOB: Use GDKUTIL to interact with a Cloud (MINIO)
//*
//* Uses: /u/<username>/gdk/providers/MINIO.json
//*       /u/<username>/gdk/config.json
//*
//* Use "tso exec 'sys1.saxrexec(gdkauthp)'" to set your credentials.
//*
//*
//*------------------------------------------------
//*
//* Proc: Create Bucket
//*
//CREBUCKT PROC CLOUD=, * which cloud provider e.g. MINIO
// BUCKET=,  * The remote bucket name
// OPTIONS=''
//CREBUCKT EXEC PGM=GDKUTIL
//SYSPRINT DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSIN    DD DATA,SYMBOLS=JCLONLY
OPERATION(CREATEBUCKET)
 PROVIDER(&CLOUD.)
 &OPTIONS.
/*
//OBJNAME  DD DATA,SYMBOLS=JCLONLY
 /&BUCKET.
/*
//CREBUCKT PEND
//*
//*------------------------------------------------
//*
//* Proc: Delete Bucket
//*
//DELBUCKT PROC CLOUD=, * which cloud provider e.g. MINIO
// BUCKET='a-bucket',  * The remote bucket name
// OPTIONS=''
//DELBUCKT EXEC PGM=GDKUTIL
//SYSPRINT DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSIN    DD DATA,SYMBOLS=JCLONLY
OPERATION(DELETEBUCKET)
 PROVIDER(&CLOUD.)
 &OPTIONS.
/*
//OBJNAME  DD DATA,SYMBOLS=JCLONLY
 /&BUCKET.
/*
//DELBUCKT PEND
//*------------------------------------------------
//*
//* PROC: List path / bucket
//*
//LIST     PROC CLOUD=, *  which cloud provider to use e.g. MINIO
// PATH=,  * the remote directory to list
// OPTIONS=''
//LIST     EXEC PGM=GDKUTIL
//SYSPRINT DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSIN    DD DATA,SYMBOLS=JCLONLY
LIST
 PROVIDER(&CLOUD.)
 &OPTIONS.
/*
//OBJNAME  DD DATA,SYMBOLS=JCLONLY
  &PATH.
/*
//LIST PEND
//*
//*------------------------------------------------
//*
//* PROC: Download object to file
//*
//DOWNLOAD PROC CLOUD=, * which cloud provider e.g. MINIO
// BUCKET=,   * The remote bucket name
// OBJECT=,   * The remote file to download
// LOCALDIR=, * The local directory to download to
// LOCALNM=,  * The local file name to write to
// OPTIONS='' * e.g. CONVERT , WEBTOOLKITLOG
//*           *      LOG(DEBUG)
//DOWNLOAD EXEC PGM=GDKUTIL
//SYSPRINT DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSIN    DD DATA,SYMBOLS=JCLONLY
DOWNLOAD
 PROVIDER(&CLOUD.)
 &OPTIONS.
/*
//OBJNAME  DD DATA,SYMBOLS=JCLONLY
 /&BUCKET./&OBJECT.
/*
//LOCNAME DD DATA,SYMBOLS=JCLONLY
 &LOCALDIR./&LOCALNM.
/*
//DOWNLOAD PEND
//*
//*------------------------------------------------
//*
//* PROC: Upload file to a bucket
//*
//UPLOAD PROC CLOUD=, * which cloud provider e.g. MINIO
// LOCALDIR=, * The local directory to upload from
// LOCALNM=,  * The local file name to upload
// BUCKET=,   * The remote bucket name
// OBJECT=,   * The remote file to create
// OPTIONS='' * e.g. CONVERT , WEBTOOLKITLOG
//*           *      LOG(DEBUG)
//UPLOAD EXEC PGM=GDKUTIL
//SYSPRINT DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSIN    DD DATA,SYMBOLS=JCLONLY
UPLOAD
 PROVIDER(&CLOUD.)
 &OPTIONS.
/*
//LOCNAME DD DATA,SYMBOLS=JCLONLY
 &LOCALDIR./&LOCALNM.
/*
//OBJNAME  DD DATA,SYMBOLS=JCLONLY
 /&BUCKET./&OBJECT.
/*
//UPLOAD PEND
//*
//*------------------------------------------------
//*
//* PROC: Delete an object from a bucket
//*
//DELOBJ PROC CLOUD=, * which cloud provider e.g. MINIO
// BUCKET=,   * The remote bucket name
// OBJECT=,   * The remote file to delete
// OPTIONS='' * e.g. CONVERT , WEBTOOLKITLOG
//DELOBJ EXEC PGM=GDKUTIL
//SYSPRINT DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSIN    DD DATA,SYMBOLS=JCLONLY
DELETE
 PROVIDER(&CLOUD.)
 &OPTIONS.
/*
//OBJNAME  DD DATA,SYMBOLS=JCLONLY
 /&BUCKET./&OBJECT.
/*
//DELOBJ PEND
//*================================================
//*================================================
//*
//* >>> Interact with the "Cloud!" <<<
//*
//* Create a bucket
//*
// EXEC CREBUCKT,CLOUD=MINIO,BUCKET='my-bucket-001'
//*
//* Create a local file
//*
//CREFILE EXEC PGM=BPXBATCH
//STDOUT  DD SYSOUT=*
//STDPARM DD DATA
SH echo 'Hello' > /tmp/afile.txt
/*
//*
//* Upload the file to the bucket
//*
// EXEC UPLOAD,CLOUD=MINIO,
//  LOCALDIR='/tmp',LOCALNM='afile.txt',
//  BUCKET='my-bucket-001',OBJECT='afile.txt'
//*
//* List the bucket
//*
// EXEC LIST,CLOUD=MINIO,PATH='/my-bucket-001'
//*
//* Download the file from the bucket
//*
// EXEC DOWNLOAD,CLOUD=MINIO,BUCKET='my-bucket-001',
//  OBJECT='afile.txt',
//  LOCALDIR='/tmp',LOCALNM='afile2.txt'
//*
//* Display downloaded file & remove the file
//*
//DISPLAY  EXEC PGM=BPXBATCH
//STDOUT    DD SYSOUT=*
//STDPARM DD DATA
SH cat /tmp/afile2.txt ; rm /tmp/afile2.txt
/*
//*
//* Delete the file from the bucket
//*
// EXEC DELOBJ,CLOUD=MINIO,BUCKET='my-bucket-001',
//  OBJECT='afile.txt'
//*
//* Delete a bucket
//*
// EXEC DELBUCKT,CLOUD=MINIO,BUCKET='my-bucket-001'
Bill Svenningsen's profile image
Bill Svenningsen
Hi Andrew,
Many thanks for the input
Yes, it's mysterious with http error 400 and "inputs is out of range"
 
I will now try to add the credentials with CDKUTIL to ensure that they are correct.
Next I will look into the Azure cloud, to see what's going on here. Is the user logged in and other errors, if it's possible
And please reach out to me
We really want to get CDA working
Thanks
Bill Svenningsen's profile image
Bill Svenningsen

Noticed in the log:

Yes, I'm looking for all errors,

Will it have impact?

Thanks

INFO:  hwtjsrch FAILED :
INFO: Return Code: 0x604
INFO: Reason Code: 0x0  
INFO: Reason Desc:      

Bill Svenningsen's profile image
Bill Svenningsen
Hi,
Status from me. And thanks to Travis for input.
I'm now added the credentials by JCL in stead of ISPF
It has no effect. Still "OutOfRangeInput" from Azure
 
About Canonicalized headers, I see
1. Will the message 
INFO: Azure authentication: Signed request  = xJ2fCRwSBVcHUls0o6zAPWF38h...........................
indicate that credentials is OK ?
Secondly I don't see the same Canonicalized headers as you (Andrew) 
NOT this         
 <x-ms-blob-type:BlockBlob 
My log:
INFO: Canonicalized headers = <x-ms-date:Thu, 23 Jul 2026 08:47:54 GMT 
x-ms-version:2016-05-31                                                
>                                                                      
                                                                       
INFO: to_sign = GET                                                    
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
x-ms-date:Thu, 23 Jul 2026 08:47:54 GMT                                
x-ms-version:2016-05-31                                                
/8d6898ea-bfc4-410d-a932-4c55e1a5f1ed/data/                            
comp:list                                                              
restype:container                                                      
INFO: Azure authentication: Signed request = xJ2fCRwSBVcHUls0o6zAPWF38h...........................
                                                                       
DEBUG: dlclose rc: 0                                                   
DEBUG: azure_post: Exit                                                
Andrew Wilt's profile image
Andrew Wilt

Hi Bill,

    I am feeling pretty stumped by this HTTP 400 error. To answer your previous question about the hwtjsrch 'error'. It's not really an error, just was looking for a particular JSON key, but not finding it. It's optional, so it shouldn't affect anything. (I have the same in my output as well.)

    I thought about it being related to the credentials, so I changed a character in my key, but with that invalid key, I am correctly getting the HTTP 403 when trying to list metadata about a particular blob. 

    I was in a hurry to get back to you yesterday, so I just found some output from a recent regression bucket run, and put some of the output as an example for the signature calculation. It wasn't an exact match to what you were doing because mine was from an UPLOAD (HTTP PUT), and yours was from a LIST Object details (HTTP HEAD).

    Let's strip things down to the absolute basic case. I like to use LIST BUCKETS as the simplest request that can be done. It is simply using / as the contents of the OBJNAME DD.

//SYSIN    DD  *                               
 /********************************************/
 /* Get list of cloud buckets                */
 /********************************************/
 LIST   PROVIDER(AZUREBLOB)                    
 WEBTOOLKITLOGU LOG(DEBUG)                     
/*                                             
//OBJNAMEX DD  *                               
   /                                           
/*                                             

The web toolkit log should show you the request sent to Azure:

* * * * * HTTP REQUEST HEADERS * * * * *    
GET /?comp=list HTTP/1.1                    
x-ms-version: 2016-05-31                    
x-ms-date: Thu, 23 Jul 2026 12:18:24 GMT    
authorization: [redacted]                   
Host: dfsms.blob.core.windows.net           
* * * * * END HTTP REQUEST HEADERS * * * * *

Then in the CDA debug log, you should look for the Canonicalized headers along with the string to sign using the shared key that you saved.

INFO: Canonicalized headers = <x-ms-date:Thu, 23 Jul 2026 12:18:24 GMT
x-ms-version:2016-05-31                                               
>                                                                     
                                                                      
INFO: to_sign = GET                                                   
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
                                                                      
x-ms-date:Thu, 23 Jul 2026 12:18:24 GMT                               
x-ms-version:2016-05-31                                               
/dfsms/                                                               
comp:list                                                             
INFO: Azure authentication: Signed request = i40sNp9WceVZMcWZqrG1Qed3C

Of course, your storage account name will look different from mine (dfsms), but everything else should be pretty close. 

You mentioned looking at the credentials that you were given. Can you successfully list the buckets in the storage resource? Or is it the case that you cannot successfully do any requests. (I have also tried to get the HTTP 400 by disabling Public network access to the storage resource on the Networking tab. Unfortunately, that just gives me the HTTP 403 error.)

I hope we can get you going with your Azure account. This is the first time I've heard of anyone having trouble targeting an Azure blob service storage account like this.

Andrew

Bill Svenningsen's profile image
Bill Svenningsen
Hi Andrew,
Let me say, that the case is that I cannot successfully do any requests to the Azure blob. 
Have tried to update the credentials with a bad secrets, but still I receive  HTTP status 400 "OutOfRangeInput"
 
Tried "LIST BUCKETS" as you suggest and the outputs looked pretty as yours. I have attached the outputs and the provider file AZURE.json as well
Please verify.
//SYSIN    DD  *                          
 LIST PROVIDER(AZURE)         LOG(DEBUG)  
 WEBTOOLKITLOGU                           
//OBJNAMEX DD *                           
 /                                        
/*                                        
 
I seems, that some fundamental setup is wrong, maybe the url, I don't know, but I will address the business team to verify and the FW folks.
To find "the stone" blocking
 
Thanks
Attachments  View in library
Andrew Wilt's profile image
Andrew Wilt

Hi Bill,

I think I may see what the problem is. I believe that you should use the "adlmdpcentralhostdev" in your credentials instead of "/8d6898ea-bfc4-410d-a932-4c55e1a5f1ed/". So, your azure-creds.json file should look something like:

{
  "accessKey": "adlmdpcentralhostdev",
  "secretAccessKey": "<the_value_of_the_key>"
}

Sincerely,

Andrew

Bill Svenningsen's profile image
Bill Svenningsen

Hi Andrew,

 
We now looking into our access to Azure.
Will update the blog, when we found "the blocking" stone
Thanks

Bill Svenningsen's profile image
Bill Svenningsen

Hi Andrew,  Update from Denmark.

We have change the accesskey to adlmdpcentralhostdev as you mentioned,
Now we get 
GDKRC=901: Denied access (HTTP 403)
 
In that content, is there anything we do to verify the mainframe setup, except to verify the secret off course (updated via CREDENTIALS(ADD) )
Anything  we can do to get wiser..
 
Please advise
Bill

//GDK     EXEC PGM=GDKUTIL,REGION=0M  
//SYSPRINT DD  SYSOUT=*               
//SYSOUT   DD  SYSOUT=*               
//SYSIN    DD  *                      
 LIST   PROVIDER(AZURE)     LOG(DEBUG)
 WEBTOOLKITLOGU                       
//OBJNAMEX DD *                       
 /                                    
/*                                    

I have attached the log files.
Attachments  View in library
Andrew Wilt's profile image
Andrew Wilt

Hi Bill,

    Apologies for the delay in replying. I've gone through the logs you attached. They are looking much better than before. At least now, you are getting the HTTP 403 permission denied response, instead of the weird HTTP 400. I don't see anything else strange, just pointing to the credentials being wrong. I would go back to the Azure account admin to verify that you are getting the expected credentials. When I look at the Access Keys for my account, I see something like:

If you are getting the "Connection string" from your Azure account administrator, the important pieces for your GDKUTIL credentials are the AccountName, and AccountKey values. So, the file named in my CREDSNAM DD contains something like:

{
  "accessKey": "dfsms",
  "secretAccessKey": "9ZOj0+PbcVO......jy0iw=="
}

Make sure you include those 'equal sign' characters that come at the end of the AccountKey. 

Andrew

Bill Svenningsen's profile image
Bill Svenningsen

Thanks Andrew,

For keeping the thread active, it's appreciated...

We realized that we were using the wrong url to Azure

Now we are using       adlmdpcentralhostdev.dfs.core.windows.net    and NOT .....blob.core.......

and I can using  GDKUTIL  -  list a file attributes and download a file to mainframe....   SUCCESS

Now I struggling with UPLOAD,  getting

GDKU0101E ERROR DURING UPLOAD REQUEST. GDKRC=904: Request failed (bad HTTP response code)   
GDKU0114I RESPONSE BODY CONTENTS: Æ ÁÊÊ?Ê  Æ Ä?ÀÁ   (ÑËËÑ>$êÁÉÍÑÊÁÀçÁ/ÀÁÊ   _ÁË
ËÈ ÑË >?È Ë¦ÁÄÑÃÑÁÀ *>êÁÉÍÁËÈñÀ  Â   Ä Ä    Ã    /  Á À             *>èÑ_Á     

x-ms-error-code: MissingRequiredHeader' 

I have add'ed following in the provider file      under      "name": "CREATEFILE",

 {
          "mechanism": "METAHEADER",
          "descriptor": "x-ms-meta-"

Not sure if it's necessary ?

Bill

Andrew Wilt's profile image
Andrew Wilt

Unfortunately, the CONVERT keyword I think you are specifying is interfering with the translation of the response body. Would you remove the CONVERT keyword and try the download of the file again? 
Previously you had been using the AZURE.json sample file, which has the REST APIs for accessing the Azure Blob storage. I think now you are using the AZUREFILE.json sample provider file to access an Azure File Service. Is that correct?
It would also be useful to add the WEBTOOLKITLOGU keyword so that the Web Toolkit logging is written to the SYSPRINT. That way we can see exactly what headers were passed to the Azure server.

I'm glad there is progress, though.

Andrew

Bill Svenningsen's profile image
Bill Svenningsen
Hi Andrew,
Yes, it's correct that we now are using AZUREFILE.json
Some confusion about the file UPLOAD
As you can see in sysout the url looks like
PUT url: adlmdpcentralhostdev.dfs.core.windows.net/data/bsvtest.txt?comp=range
 
Our data guys says the data is residing in a Azure Data Lake Storage endpoint.   And suggest to try something like:
PUT url: adlmdpcentralhostdev.dfs.core.windows.net/data/bsvtest.txt?resource={resource}&conti....................................................
 
What is ups and downs here ?
I have attached our successfully download (GET) as well, may be it can give a clue
And yes I have added some addtional tags i AZUREFILE.json 
on "WRITEOBJECT"    added
  "mechanism": "METAHEADER",
          "descriptor": "x-ms-meta-"
        },
        {
          "mechanism": "HEADER",
          "descriptor": "x-ms-type: file"
 
Please advise
Thanks Bill
 
 
//SYSIN    DD  *                             
 UPLOAD   PROVIDER(AZUREFILE)                                         
 WEBTOOLKITLOGU LOG(DEBUG)                   
//BUCKET  DD *                               
  /data/bsvtest.txt                          
/*                                           
//LOCAL    DD DISP=SHR,DSN=UBIBSV.AZURE.TEST 

Andrew Wilt's profile image
Andrew Wilt

Hi Bill,

    I am happy to hear that you are seeing some progress. I do have a concern, though. Your data guy suggested using REST API details that are specific to the Data Plane Path related APIs. (Azure data plane path - list API). Those seem to have more of a 'file system' view on things for the Data Lake Gen 2 environment. The Data Lake gen 2 stuff should be accessible using Blob storage APIs, though. (I did try it with my Azure ADLS 2 storage account as I was trying to build a provider file that had those REST specifics.) 
    I think you should be able to use the AZURE.json sample, modified to target the "host" key as adlmdpcentralhostdev.blob.core.windows.net . (You can move your AZUREFILE.json to AZUREFILE.json.old, and copy /usr/lpp/dfsms/gdk/samples/providers/AZURE.json to AZUREFILE.json . So that your current credentials would be used for the new provider file. - Don't forget to update the "host" key. I did that today and was wondering why it was failing.) 
    Once it is using the Blob storage provider file, what does the LIST do? (I expect it will work. What about the upload and download?)

Andrew

Bill Svenningsen's profile image
Bill Svenningsen

An update from Danmark.

We now have access from the mainframe to the cloud provider. Important to notice is to get access to the right endpoint in the cloud. We are now looking forward to rolling it out at full scale. Thanks for the support and tips.

rgds Bill

Andrew Wilt's profile image
Andrew Wilt

Hi Bill. I am so relieved you got past the problems you were having. Please don't hesitate to post again with success and any other questions or problems you run into.

Andrew