Wie schon gesagt: Bei ODBC/JDBC steuert der Treiber den Cursor. An den Namen des Cursors kommt man da nicht mehr. Also kann man auch keinen "Allocate MeinCursor Cursor ..." aufrufen.
Die Einzige Chance, einen Cursor tatsächlich zu schließen ist, den Service, also die Prozedur, mit einem Close-Auftrag aufzurufen. Ein Cursorname gilt nämlich für die jeweilige Aufrufebene bzw. Service.
Mit einer SQL-Procedure bzw. Function hat man da auch schlechte Karten, da nun mal der Return ein Cursor ist. SQL-Prozeduren/-Funktionen sind selbständige Programme, die man nicht zu einem Modul bündeln kann.

Baut man die Prozedur als externe Prozedur in ein ILE-Modul, können Ressourcen über verschiedene Prozeduren geteilt werden. Somit kann man einen GetCursor bauen, wie auch einen CloseCursor, deren Prozeduren im selben Modul liegen.