Author |
Message
|
jim777 |
Posted: Tue Feb 11, 2014 1:29 pm Post subject: Using Local Environment to override File Output properties |
|
|
Novice
Joined: 13 Feb 2012 Posts: 16
|
Hi guys, I'm attempting to use the file output node to ftp a file over to a secure folder. I have dummy values in the 'server and port' and 'server directory' fields of the node. The IBM documentation indicates that if you set the local environment variables, it'll override the values that you have in your node.
LocalEnvironment.Destination.File.Remote.Server
LocalEnvironment.Destination.File.Remote.ServerDirectory
As I step through the message flow I see that the local environment variables are set correctly just before it hits the File Output Node but the data always comes out of the failure terminal of the node. When I take a look at the exceptionList, it throws a 3380 which indicates it cannot connect with the remote server. The details in the exception indicate that it was attempting to connect to the values that were specified in the node. Meanwhile it should have tried to connect to the server address that was assigned in the local environment that was passed in.
The File Output node just doesn't want to look at the environment variables, why is that? Any help would be appreciated. |
|
Back to top |
|
 |
Vitor |
Posted: Tue Feb 11, 2014 1:36 pm Post subject: Re: Using Local Environment to override File Output properti |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
jim777 wrote: |
The File Output node just doesn't want to look at the environment variables, why is that? |
When you say:
jim777 wrote: |
I see that the local environment variables are set correctly just before it hits the File Output Node |
Do you mean "by looking at the message tree using a Trace node positioned before the FileOutput node" or do you mean "by looking in the debugger just before I leave the Compute node that's immediately before the FileOutput node"?
If it's the latter, have you changed the Compute node settings to propagate the LocalEnvironment as well as the Message? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
jim777 |
Posted: Tue Feb 11, 2014 1:40 pm Post subject: |
|
|
Novice
Joined: 13 Feb 2012 Posts: 16
|
Like the latter
PROPAGATE TO TERMINAL 'out1' ENVIRONMENT OutputLocalEnvironment MESSAGE OutputRoot; |
|
Back to top |
|
 |
Gralgrathor |
Posted: Wed Feb 12, 2014 12:30 am Post subject: |
|
|
Master
Joined: 23 Jul 2009 Posts: 297
|
jim777 wrote: |
Like the latter |
Specifically, what's the value of the "Compute mode" property of the Compute Node before the File node? |
|
Back to top |
|
 |
Esa |
Posted: Wed Feb 12, 2014 1:01 am Post subject: |
|
|
 Grand Master
Joined: 22 May 2008 Posts: 1387 Location: Finland
|
@Gralgrathor:
"Compute mode" property has no effect on PROPAGATE statement...
After RETURN TRUE the message assembly is propagated to terminal 'Out'.
So if you thought that the File Output node gets hit twice, the second time with empty LocalEnvironment, this doesn't seem to be the case. Good idea, however! It's possible that something like that actually causes the problem. |
|
Back to top |
|
 |
Gralgrathor |
Posted: Wed Feb 12, 2014 1:37 am Post subject: |
|
|
Master
Joined: 23 Jul 2009 Posts: 297
|
Esa wrote: |
"Compute mode" property has no effect on PROPAGATE statement... |
Jim has written ESQL to set the file destination in the outgoing localenvironment tree.
The file node, however, refuses to see these values.
The "Compute mode" property is binding. Even if you specify the localenvironment in your propagate statement, it will not propagate if the "Compute mode" property doesn't include it.
So the question is really: does Jim check these values *in*, or *after* the compute node (eg. via a trace node)? And if it's *in*, then has he set the "Compute mode" property to include the localenvironment tree? |
|
Back to top |
|
 |
Esa |
Posted: Wed Feb 12, 2014 2:03 am Post subject: |
|
|
 Grand Master
Joined: 22 May 2008 Posts: 1387 Location: Finland
|
Gralgrathor wrote: |
The "Compute mode" property is binding. Even if you specify the localenvironment in your propagate statement, it will not propagate if the "Compute mode" property doesn't include it. |
 |
|
Back to top |
|
 |
Gralgrathor |
Posted: Wed Feb 12, 2014 4:16 am Post subject: |
|
|
Master
Joined: 23 Jul 2009 Posts: 297
|
Esa wrote: |
 |
Sod, you're right. So the "compute mode" property only applies if you don't specify what should be included in the assembly. There's no way that a well-meant
Code: |
SET OutputLocalEnvironment.Destination.File.Remote.Server = 'overrideremoteserver';
SET OutputLocalEnvironment.Destination.File.Remote.ServerDirectory = 'overrideremoteserverdirectory';
PROPAGATE TO TERMINAL 'out' ENVIRONMENT OutputLocalEnvironment MESSAGE OutputRoot; |
can fail to work if the 'out' terminal is wired directly to the FileOutput node.
Well, learn something new each day. |
|
Back to top |
|
 |
Esa |
Posted: Wed Feb 12, 2014 5:19 am Post subject: |
|
|
 Grand Master
Joined: 22 May 2008 Posts: 1387 Location: Finland
|
@jim777:
did you check if the file was transferred in the remote directory? |
|
Back to top |
|
 |
jim777 |
Posted: Wed Feb 12, 2014 6:17 am Post subject: |
|
|
Novice
Joined: 13 Feb 2012 Posts: 16
|
Thanks for all the replies guys
In the compute node before the remote transfter, the mode is set to look at the LocalEnvironment.
I have a trace before and after the file output node and the contents of the LocalEnvironment are the same. It has the data to override the server and server directory but it just isn't performing the override.
LocalEnvironment.Destination.File.Remote.Server
LocalEnvironment.Destination.File.Remote.ServerDirectory
I used
PROPAGATE TO TERMINAL 'out1' ENVIRONMENT InputLocalEnvironment MESSAGE OutputRoot;
because the 'out' terminal was used for local transfers and not remote transfers. The RETURN FALSE statement is found at the end of the function call.
The File Output Node is set to remote transfer.
The file did not reach the intended location because it always comes out of the failure terminal throwing an error that it can't connect to the ftp server defined in the original node properties. |
|
Back to top |
|
 |
Esa |
Posted: Wed Feb 12, 2014 6:43 am Post subject: |
|
|
 Grand Master
Joined: 22 May 2008 Posts: 1387 Location: Finland
|
Important question: broker version?
7.0.0.5 is the first version that supports local environment overrides for remote server settings. |
|
Back to top |
|
 |
jim777 |
Posted: Wed Feb 12, 2014 6:51 am Post subject: |
|
|
Novice
Joined: 13 Feb 2012 Posts: 16
|
I ran mqsireportbroker and it looks like I'm only 7.0.0.3
Does that mean I'm SOL |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Feb 12, 2014 6:55 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Are you sure that the Propagate statement is sending out the right things? |
|
Back to top |
|
 |
jim777 |
Posted: Wed Feb 12, 2014 7:17 am Post subject: |
|
|
Novice
Joined: 13 Feb 2012 Posts: 16
|
|
Back to top |
|
 |
|