Список исходных участников в файле с SQL

Прямо сейчас ваш код пытается инициализировать FirebaseApp для каждого запроса. Это не нужно и фактически запрещено (как показано в сообщении об ошибке). Самое простое решение - проверить, инициализирована ли уже FirebaseApp с помощью:

if (FirebaseApp.getApps().isEmpty()) {
    String DATABASE_URL = "https://name.firebaseio.com/";
    try {
        ClassLoader classLoader = getClass().getClassLoader();
        InputStream inputStream = classLoader.getResourceAsStream("token.json");

        FirebaseOptions options = new FirebaseOptions.Builder()
        .setCredentials( GoogleCredentials.fromStream(inputStream))
                .setDatabaseUrl(DATABASE_URL)
                .build();
        FirebaseApp.initializeApp(options);
    } catch (IOException e) {
        e.printStackTrace();
        System.out.println("Error loading database");
    }
}
FirebaseToken decodedToken = FirebaseAuth.getInstance().verifyIdToken(idToken);
String uid = decodedToken.getUid();

return service.getAll();

Но это все равно проверяет FirebaseApp каждый вызов и, честно говоря, просто делает код этого метода больше, чем нужно. Поэтому, вероятно, лучше привязаться к жизненному циклу контроллера и запускать код, который инициализирует FirebaseApp, только когда контроллер создается. Я не достаточно осведомлен о Spring, чтобы ответить, как это сделать, но в этой статье показаны некоторые многообещающие подходы.

9
задан nearly_lunchtime 9 December 2008 в 16:42
поделиться

2 ответа

Печально SQL ничего не знает об участниках, таким образом, вся информация исходного файла, которую Вы могли получить от qsys2.syscolumns, что они состоят из трех столбцов.

Вы хотите информацию об участнике, и я предлагаю использовать qshell (STRQSH) вместе с запросом к qsys2.systables, поскольку исходные файлы особенно отмечены там.

select table_schema , table_name from qsys2.systables where File_type = 'S'

я бил вместе qshell остроту в copy&paste целях..

db2 -S "select '/QSYS.LIB/' concat table_schema concat '.LIB/' concat table_name concat '.FILE' from qsys2.systables where File_type = 'S'" | grep '/' | xargs -n1 find >/home/myuser/myfile                                                                            

это передает по каналу каждого участника, которого это находит к каталогу IFS/home/myuser/myfile, Вы могли также указать участника Исходного файла. не стесняйтесь изменять к своим потребностям.

PS: это бросает ошибки для Исходных файлов, непосредственно находящихся в/QSYS.LIB, но я думаю, что Вы не хотите их так или иначе..

береги себя! :)

5
ответ дан 4 December 2019 в 11:44
поделиться

Можно записать программу CL, которая получает список участников, использующих команду DSPFD. Возможно, можно ли назвать ту программу из хранимой процедуры?

2
ответ дан 4 December 2019 в 11:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: