{
  "synLogic": "int $ret \u003d $api($1, $2, $3);",
  "help": "The purpose of this api is to get a connection from the connection pool. If a free connection is available, it will be returned. Otherwise, a new connection will be made and returned.",
  "notes": "",
  "returns": "Its return integer in C and boolean in Java, If an error occurs, an error code of value \u003c 0 will be returned, and the error_msg buffer will be set with an error message. In Java this function returns true for success and false for failure.",
  "arguments": "\u003ctable class\u003d\"newGuiTable\" style\u003d\"width:100%\"\u003e \u003ctbody\u003e\u003ctr\u003e \u003cth\u003e Argument \u003c/th\u003e \u003cth\u003e Description \u003c/th\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003e JPID \u003c/td\u003e \u003ctd\u003e It is the pool id returned from ns_kafka_init_producer () or ns_kafka_init_consumer () api. \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003e Transaction Name \u003c/td\u003e \u003ctd\u003e The name of the transaction to be started once the connection is established. This parameter is optional and can be set to NULL or an empty string if not needed. \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003e Error Message \u003c/td\u003e \u003ctd\u003e A pointer to a buffer that will be used to store error messages in case of errors. \u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e\u003c/table\u003e",
  "parameterization": "",
  "component": [
    {
      "id": "$1",
      "type": "TextField",
      "label": "JMS Pool Connection Id",
      "value": "",
      "css": "p-grid p-align-center w-100-p",
      "title": "First character must be Alpha.\r\nOther characters are Alpha, Numeric or Underscore",
      "placeHolder": "",
      "style": "",
      "isDisabled": "",
      "labelVarCheckbox": "If JMS Connection id is a program variable",
      "argIndex": 0,
      "validate": {
        "inputType": "Text",
        "disabled": false,
        "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,63}$",
        "required": false,
        "min": 0,
        "max": 0,
        "method": "isValidVar(arg)"
      },
      "quotes": false
    },
    {
      "id": "$2",
      "type": "TEXT_VAR",
      "label": "Transaction Name",
      "value": "",
      "css": "p-grid p-align-center w-100-p",
      "title": "Enter transaction name",
      "placeHolder": "",
      "style": "",
      "isDisabled": "",
      "labelVarCheckbox": "If transaction name is a program variable",
      "argIndex": 0,
      "validate": {
        "inputType": "Text",
        "disabled": false,
        "required": true,
        "min": 0,
        "max": 0
      },
      "quotes": true
    },
    {
      "id": "$3",
      "type": "TextField",
      "label": "Error Message Buffer Pointer",
      "value": "",
      "css": "p-grid p-align-center w-100-p",
      "title": "Enter error message",
      "placeHolder": "",
      "style": "",
      "isDisabled": "",
      "labelVarCheckbox": "",
      "argIndex": 0,
      "validate": {
        "inputType": "Text",
        "disabled": false,
        "required": true,
        "min": 0,
        "max": 0
      },
      "quotes": false
    },
    {
      "id": "$ret",
      "type": "TextField",
      "label": "Return Variable",
      "value": "",
      "css": "p-grid p-align-center w-100-p",
      "title": "First character must be Alpha.\r\nOther characters are Alpha, Numeric or Underscore",
      "placeHolder": "",
      "style": "",
      "isDisabled": "",
      "labelVarCheckbox": "",
      "argIndex": 0,
      "validate": {
        "inputType": "Text",
        "disabled": false,
        "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,63}$",
        "required": false,
        "min": 0,
        "max": 0,
        "method": "isValidVar(arg)"
      },
      "quotes": true
    }
  ],
  "name": "ns_kafka_get_connection",
  "syntax": "int ns_kafka_get_connection(int jpid, char *transaction_name, char *error_msg);",
  "javaSyntax": "boolean ns_kafka_get_connection(JMSKey key, String txName);",
  "cEx": "flow()\n{\n  int jpid;        //JMS Pool Id\n  int jcid;        //JMS Connection Id\n  char error_msg[1024 + 1];        // Error string. Must be 1024 size\n  int ret;        // Error code\n  char *msg \u003d \"message will goes here\";        // Message to be produced\n  int msg_len \u003d strlen(msg);        // Message Length\n  char *key \u003d \"message_key\";        // Message Key\n  int key_length \u003d strlen(key);        // Message Length\n  if((jpid \u003d ns_kafka_init_producer(\"127.0.0.1\", 9092, \"topic\", 1, error_msg)) \u003c 0) {\n    fprintf(stderr, \"Error in initializing Kafka producer. Error code \u003d %d, Error Msg \u003d %s\", jpid, error_msg);\n    return;\n  }\n  if((jcid \u003d ns_kafka_get_connection(jpid, \"KAFKAProducerConnect\", error_msg)) \u003c 0) {\n   fprintf(stderr, \"Error in getting Kafka connention. Error code \u003d %d, Error Msg \u003d %s\", jcid , error_msg);\n   return;\n  } \n}",
  "javaEx": "public class flow implements NsFlow\n{\n  public int execute(NSApi nsApi) throws Exception\n  {\n        NSApi.JMSKey key \u003d null;\n        String msg\u003dnull;\n\n        // Initalizes Producer connection by getting connection from the given pool ID.\n        // Returns the connection id  . will reuse connection if free or make new connection  ???\n        // In case of error, it returns error code with error_msg \n        if(!nsApi.ns_kafka_get_connection(key, \"KAFKAConsumerConnect\"))\n        {\n         System.out.println(\"Error in getting Kafka connection. Error code \u003d \" + key.getErrCode() + \", Error Msg \u003d \" + key.getErrMsg());\n         return 0;\n        }\n  }\n}",
  "insertStrC": "ns_kafka_get_connection(int jpid, char *transaction_name, char *error_msg);",
  "insertStrJava": "ns_kafka_get_connection(JMSKey key, String txName);",
  "description": "The purpose of this api is to get a connection from the connection pool. If a free connection is available, it will be returned. Otherwise, a new connection will be made and returned."
}