interface gps and gsm

I am using a gps receiver on pins 8&9 and gsm(sim800l) on pins 10&11.
I want to send the gps data("data" string in the code) to server using gsm.
The gsm keeps resetting itself thus preventing it from sending data to server.
How should I prevent this?
Using two software serials is causing this problem.
Thanks in advance.

#include <SoftwareSerial.h>
#include "TinyGPS++.h"
int a=0;
SoftwareSerial serial_connection(8,9);
SoftwareSerial myGsm(10,11);
TinyGPSPlus gps;
TinyGPSCustom Trackingangle(gps, "GPRMC", 8);
TinyGPSCustom Dir_NS (gps, "GPRMC", 4);
TinyGPSCustom Dir_EW (gps, "GPRMC", 6);

String data,tr,ew,ns;

void printSerialData()
{
 while(myGsm.available()!=0)
 Serial.write(myGsm.read());
}

void setup() {
serial_connection.begin(9600);
 myGsm.begin(9600);  
  delay(500);
  Serial.begin(9600);
  }

void loop() {

 serial_connection.listen();
  delay(5000);
  Serial.println("GPS Start");
{
  data="";tr="";
  while(Serial.available())//While there are characters to come from the GPS
  {
    gps.encode(serial_connection.read());//This feeds the serial NMEA data into the library one char at a time
  }
  
if (Trackingangle.isUpdated())
{
    tr=String(Trackingangle.value()); //    Serial.println(tr);
}
if (Dir_EW.isUpdated())
{
 
 ew=String(Dir_EW.value());  
}
if (Dir_NS.isUpdated())
{
  
  ns=String(Dir_NS.value());  
}
if(tr!="")
{ if(gps.location.isUpdated())
 {
   
    data=String(gps.satellites.value());
   data+=",";

    data+=String(gps.location.lat(), 6);
    data+=",";
    data+=String(gps.location.lng(), 6);
    data+=",";
   data+=String(gps.speed.mph());
     data+=",";
    data+=String(gps.altitude.feet());
     data+=",";
    data+=String(gps.hdop.value());  
     data+=",";
     data+=tr;
     data+=",";
     data+=ns;
     data+=",";
     data+=ew;
     data+=",";
     Serial.println("gps  = "+data);
   }
  }
}  
      Serial.println("Final Data="+data);
      
  // 
  Serial.println();
  //
 myGsm.listen();
 delay(10000);
 Serial.println("myGSM working");

if (a==0)
{
  a=1;
  myGsm.println("AT");
    Serial.println("AT");
    delay(1000);
   printSerialData();
       
myGsm.println("AT+CSQ=?");
Serial.println("AT+CSQ=?");
 delay(1000);
 printSerialData();

myGsm.println("AT+CGSN");
Serial.println("AT+CGSN");
 delay(1000);
 printSerialData();

myGsm.println("AT+CGMM");
Serial.println("AT+CGMM");
 delay(1000);
 printSerialData();
}
 
 
myGsm.println("AT+CIPSHUT");
 delay(1000);
 printSerialData();

 myGsm.println("AT+CIPMUX=0");
 delay(2000);
 printSerialData();
 
 myGsm.println("AT+CGATT=1");
 delay(1000);
 printSerialData();
 
  
 myGsm.println("AT+CSTT=\"www\",\"\",\"\"");//setting the APN,2nd parameter empty works for all networks 
 delay(5000);
 printSerialData();
 
 myGsm.println();
 myGsm.println("AT+CIICR");
 delay(6000);
 printSerialData();
 
 myGsm.println("AT+CIFSR"); //init the HTTP request
 delay(2000); 
 printSerialData();
 
 myGsm.println("AT+CIPSTART=\"TCP\",\"92.4.91.41\",\"6868\"");
 delay(5000);
 printSerialData();
 delay(5000);
 
 myGsm.println("AT+CIPSEND");
 delay(2000);
 printSerialData();

   Serial.println("DATA= "+data);
      myGsm.println(data);
 delay(3000);
 printSerialData();
 myGsm.write(0x1A);
 delay(3000);
   printSerialData();

   
//
   Serial.println();
//
 delay(3000);
  
}
while(Serial.available())//While there are characters to come from the GPS

Apart from any problems in using two instances of SoftwareSerial, is the comment correct ?

What are you expecting to receive on hardware serial ?

I want to see whether the connection has been established or not using Serial.println()

muskaan_parmar:
The gsm keeps resetting itself thus preventing it from sending data to server.
How should I prevent this?

You should use separate power source for your GSM module. If it's resetting itself that means its not getting the required current to get signals.

If you check its datasheet then you will find current peaks that's why it's recommended to use capacitors as well. I would recommend to use 2200uF capacitor across power pins of GSM module.

muskaan_parmar:
I want to see whether the connection has been established or not using Serial.println()

The connection with what ? Do you mean the GPS module ?